我正在尝试通过补丁从我的Vue前端上传多个文件到Sails后端。对于每个产品,可能会有一个缩略图和多个细节图像。对于来自Vue的请求,我设置了一个FormData对象,其中包含图像(1个缩略图,n个详细图像)
function buildMultipartFormDataObject(data) {
let formData = new FormData()
//append text before images
if(data.thumbnail) formData.append('thumbnail', data.thumbnail)
if(data.images) {
for(let i = 0; i < data.images.length; i++) {
formData.append(`images[${ i }]`, data.images[i])
}
}
return formData
}
在Sails Controller中,我正在执行以下操作来上传文件
module.exports = async function update (req, res) {
// ...
let productImagesDirname = require('path').resolve(sails.config.appPath, 'assets/images/products/')
//uploadOne() and upload() are from 'sails-hook-uploads'
let uploadedThumbnail = await sails.uploadOne(req.file('thumbnail'), { dirname: productImagesDirname })
let uploadedImages = await sails.upload(req.file('images'), { dirname: productImagesDirname })
我的缩略图正在按预期方式上传,但对于我得到的图像
错误:EMAXBUFFER:上游(
images[0]
)在开始之前已超时 插入接收器。等待4500毫秒后仍未使用。您 可以通过更改maxTimeToBuffer
选项来配置此超时。
每个图像(图像[0] ...图像[n])及其后紧随
错误:ETIMEOUT:上游(
images
)等待文件超时。 等待10000毫秒后未发送任何文件。
即使我只想上传图像(在sails&vue中注释了缩略图上传)。因此很明显,上载流中缺少帆images
吗?
_files
上游的req.file('thumbnail')
字段包含一个流对象
debug: Upstream {
_fatalErrors: [],
_files: [ { stream: [Object], status: 'bufferingOrWriting' } ],
_files
上游的req.file('images')
字段为空,但我不明白为什么
debug: Upstream {
_fatalErrors: [],
_files: [],
那里有什么主意吗?