【发布时间】:2021-05-28 10:46:47
【问题描述】:
我正在使用form-data 从缓冲区上传文件。在服务器端,我使用formidable 来解析文件数据。我在服务器上不断收到这样的错误:
Error: MultipartParser.end(): stream ended unexpectedly: state = START
或
Error: MultipartParser.end(): stream ended unexpectedly: state = PART_DATA
我不确定这是表单数据的问题还是强大的问题。我找到了很多解决方案(主要涉及不手动设置 Content-Type 标头)。但是,我找不到可以为我解决问题的方法。我最终弄清楚了一些事情,所以发布以回答。
我在开发 Strapi 上传提供程序时遇到了这个问题。 Strapi 提供有关需要上传到服务的文件的信息。文件内容作为缓冲区提供(出于某种原因)。这是我收到错误时的代码(稍作修改):
const form = new FormData()
form.append('file', Readable.from(file.buffer))
form.append('name', file.name)
form.append('hash', file.hash)
form.append('mime', file.mime)
form.on('error', () => abortController.abort())
return fetch(url, {
method: 'post',
body: form,
signal: abortController.signal,
}))
【问题讨论】: