如何使类星体发送包含multipart / form-data的大文件?

时间:2019-04-14 20:33:00

标签: node.js feathersjs quasar-framework

我正在使用具有quasar应用程序的应用程序进行工作,但是当我使用该组件创建文件上传时,无法将文件分成小部分发送...

看看代码...

<template>
  <q-uploader
    multiple
    auto-expand
    :headers="{'content-type': 'multipart/form-data'}"
    url=""
    :upload-factory="uploadFile"
  />
</template>

<script>
import { mapActions } from 'vuex'

export default {
  name: 'Uploader',
  methods: {
    uploadFile (file, updateProgress) {
      // "file" is an Object containing file's props, including content

      // for updating progress (as 0-1 floating number), we need to call:
      // updateProgress (bytesTransferred / totalBytes)

      this.uploadFilesSend({'file': file, 'type': file.type}).then(console.log('upload ok'))

      // we need to return a Promise
      // (resolves when upload is done, rejects when there's an error)
    },
    ...mapActions('uploads', {
      uploadFilesSend: 'create'
    })
  }
}
</script>

我正在使用feathersjs作为带有连接socket.io的服务器,该服务器抱怨说,当我发送一个大文件超时时,为了进一步增加该团队,我验证了它试图仅发送整个文件,而不发送部分....

我想知道您是否拥有以及如何启用此multipart / form-data方法..

感激

1 个答案:

答案 0 :(得分:0)

您必须在UI上将文件拆分为可管理的块,然后将每个文件发送到单独的消息中。在服务器上,您必须收集所有块并将它们放在某个位置。大多数文件存储API都有某种分块的上载API。

在一些项目中,我只是使用window.fetch向我的API发送多部分请求。

这另一篇文章中有一些教程和库:Can I upload a file to server by socket.io in node.js?