首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个文件上载到Node服务器

将多个文件上载到Node服务器
EN

Stack Overflow用户
提问于 2022-10-14 11:09:23
回答 1查看 29关注 0票数 0

在将多个文件从react应用程序上载到Node服务器时,我遇到了一个问题。我和穆特一起在服务器上建立了上传。在Post上测试了api,它运行得很好。在从React前端上传时,我使用表单数据来管理上载的有效载荷和文件。这是React上代码的示例。

代码语言:javascript
复制
 const formData = new FormData();
      for (let i = 0; i < photos.length; i++) {
       console.log(photos[i]);
        formData.append(`photos[]`, photos[i]);
      }
      formData.append(`firstName`, firstName);
      formData.append(`lastName`, lastName);
      formData.append(`email`, email);
      formData.append(`password`, password);

在后端(节点服务器),req.files是空的,但是req.body作为有效负载的一部分返回带有照片的数据。这是req.body日志。

代码语言:javascript
复制
 console.log(req.files) => undefined 
console.log(req.body) => {
  photos: [ {}, {}, {} ] (the files are returning inside the req.body),
  firstName: 'Test',
  lastName: 'Two',
  email: 'test111@test.com',
  password: '123456'
}

注意:我使用了体解析器、express.json和urlencoded。这是我的表格标签

代码语言:javascript
复制
<form onSubmit={submitHandler} encType="multipart/form-data">

这是输入

代码语言:javascript
复制
<input
              type="file"
              name="photos"
              className="form-control"
              multiple
              max={4}
              onChange={handleFileChange}
            />

穆特处理程序

代码语言:javascript
复制
module.exports = multer({
    storage: multer.diskStorage({}),
    fileFilter: (req,file,cb)=>{
        let ext = path.extname(file.originalname);
        if(ext === '.jpeg' || ext ===  '.jpg' || ext ===  '.png' || ext === '.pdf' || ext === ".txt" || ext === ".doc"){
          cb(null,true)
        }else{
          cb({error:'You can not upload this type of file'},false)
        }
      }

})

这是我的路线

代码语言:javascript
复制
router.post('/users/register', upload.array("photos", 4), registerValidation(), validate, UserController.registerUser);

谁来帮帮我,我不知道我做错了什么

EN

回答 1

Stack Overflow用户

发布于 2022-10-15 20:06:55

我能够解决这个问题,从身体解析器到内置的表达式。另外,我在form标记中删除了encType,并在标头中直接传递了内容类型。谢谢大家的建议。

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

https://stackoverflow.com/questions/74068327

复制
相关文章

相似问题

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