通过Vue.js中的sails-hook-uploads在Sails.js中上传多个文件:ETIMEOUT

时间:2018-10-02 10:35:40

标签: javascript vue.js file-upload sails.js multiple-file-upload

我正在尝试通过补丁从我的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: [],

那里有什么主意吗?

0 个答案:

没有答案