首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 6文件上传

Angular 6文件上传
EN

Stack Overflow用户
提问于 2018-06-26 02:56:11
回答 1查看 1.3K关注 0票数 1

我已经被困在这件事上好一阵子了。我有一个使用angular 6的堆栈应用程序,我正在尝试上传保存一个文件到我的后端。我找到了THIS的文章。但是要么我收到一个错误,一个密码库

代码语言:javascript
复制
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> 
<title>Error</title> </head> <body> <pre>Error: ENOENT: no such file or 
 directory, open ''<br> at 
 Error (native)</pre> </body> </html>

从服务器返回,或者req.file为空,我的保存没有发生。我正在尝试拼凑出最好的方法来做到这一点。

谢谢

这里是我的终点

代码语言:javascript
复制
app.post('/api/posts', upload.single('file'), (req, res, next) => {

const post = new Post({
  title: req.body.title,
  content: req.body.content,
  image:req.file
});    

post
.save()
.then(createdPost => {
  res.status(201).json({
    status: true,
    id: createdPost._id,
  });
})
.catch(error => {
  res.status(500).json({ status: false, message: 'Didnt save ', error });
});

});

下面是我如何设置multer、网格文件流和存储

代码语言:javascript
复制
    let gfs;
conn.once('open', () => {
  gfs = Grid(conn.db, mongoose.mongo);
  gfs.collection('uploads');
});


const storage = new GridFsStorage({
  url: connection,
  file: (req, file) => {
    return new Promise((resolve, reject) => {
      crypto.randomBytes(16, (err, buf) => {
        if (err) {
          return reject(err);
        }
        const filename = buf.toString('hex') + path.extname(file.originalname);
        const fileInfo = {
          filename: filename,
          bucketName: 'uploads'
        };
        resolve(fileInfo);
      });
    });
  }
});
const upload = multer({ storage });
EN

回答 1

Stack Overflow用户

发布于 2018-06-26 05:47:36

这与multer尝试创建目录并写入正确的路径名(可能是./uploads/)有关。并确保该文件夹是可写的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51030185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档