Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将文件数组发送到express后端_Node.js_Reactjs_Express_File Upload_Multer S3 - Fatal编程技术网

Node.js 如何将文件数组发送到express后端

Node.js 如何将文件数组发送到express后端,node.js,reactjs,express,file-upload,multer-s3,Node.js,Reactjs,Express,File Upload,Multer S3,我正在尝试向我的后端发送一组图像,然后用multer-s3上传它们。我通过react将它们发送到node express后端。当我从前端提交时,它是一个提交图像数组的过程,如下所示: 图片:[文件(3195869){名称:“IMG-example.JPG”,lastModified:1514505624000,lastModifiedDate:Thu Dec 28 2017 17:00:24 GMT-0700(MST),webkitRelativePath:,大小:3195869,},…] 但是

我正在尝试向我的后端发送一组图像,然后用multer-s3上传它们。我通过react将它们发送到node express后端。当我从前端提交时,它是一个提交图像数组的过程,如下所示:

图片:[文件(3195869){名称:“IMG-example.JPG”,lastModified:1514505624000,lastModifiedDate:Thu Dec 28 2017 17:00:24 GMT-0700(MST),webkitRelativePath:,大小:3195869,},…]

但是当我在后端记录req.body时,它返回[{}、{}、{}、{}、…]并且req.files是未定义的

为什么文件不能通过post请求发送出去???

本节对此进行了解释^^

app.post('/photos/upload', upload.array('photos', 12), function (req, res, next) {
  // req.files is array of `photos` files 
  // req.body will contain the text fields, if there were any 
})
就像express js所说:

在Express 4中,req对象上的req.files不再可用 默认值。要访问req.files对象上上载的文件,请使用 多部分处理中间件,如busboy、multer、Forbible、, 多方、连接多方或pez。“


对于您来说,这是一个很好的教程,其中有一部分您希望上载多个文件:

我使用了npm的express form post,发现它非常有用。您可以在某些for循环或sumn中使用Object.key(req.files[index])访问该文件数组,并在..之后使用它们执行任何操作。。。。。它与s3非常兼容。。。表单字段中的name属性是键,其他元数据(文件大小、原始名称等)是该键随附的数据

我本想将其作为问题的一部分,但req.files也未定义。请尝试查看此问题:(以及最新答案:)。就像express js所说的:“在express 4中,默认情况下req.files在req对象上不再可用。要访问req.files对象上上传的文件,请使用多部分处理中间件,如busboy、multer、Foremble、multiparty、connect multiparty或pez。”好的,所以我认为我的问题是,我不是直接从输入上传,而是将照片存储在一个商店中,然后在最后一步,我尝试将照片发送到s3,multer正在寻找输入名称,但当用户点击submit时,它们不是来自输入。谢谢你的帮助!