首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >上传文件时出现“error : MultipartParser.end():流意外结束”错误

上传文件时出现“error : MultipartParser.end():流意外结束”错误
EN

Stack Overflow用户
提问于 2021-02-26 10:32:01
回答 1查看 289关注 0票数 0

我正在从一个缓冲区上传一个文件,使用form-data..。在服务器端,我使用formidable解析文件数据。我一直在服务器上收到这样的错误:

代码语言:js
复制
Error: MultipartParser.end(): stream ended unexpectedly: state = START

或者

代码语言:js
复制
Error: MultipartParser.end(): stream ended unexpectedly: state = PART_DATA

我不确定这是表单数据的问题还是可怕的问题。我找到了很多解决方案(主要涉及不手动设置Content-Type头)。然而,我找不到一个为我解决这个问题的人。我最终弄明白了一些事情,所以为了回答而发帖。

我在开发Strapi上传提供程序时遇到了这个问题。Strapi提供有关需要上传到服务的文件的信息。文件内容是作为缓冲区提供的(出于某种原因)。下面是我收到错误时代码的样子(稍微修改一下):

代码语言:javascript
运行
复制
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,
}))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-26 10:32:01

同样,我不确定这是表单数据的问题还是可怕的问题,但如果我提供一个filenameknownLength为了形成数据,这个问题就消失了。这是我的最终代码的样子(稍微修改一下):

代码语言:javascript
运行
复制
const fileStream = Readable.from(file.buffer)
const fileSize = Buffer.byteLength(file.buffer)

const abortController = new AbortController()

const form = new FormData()
form.append('file', fileStream, {filename: file.name, knownLength: fileSize})
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,
}))

我尝试记录错误(‘form.on’)结果,但什么也得不到(没有中止)。

我试着设置filename我得到了同样的错误。

我试着设置knownLength。文件上传了,但它是空的(至少,formidable认为它是空的)。它必须需要文件名才能正确解析文件?

这可能是form-data未正确读取输入流或未正确写入输出流(我确实注意到在查看服务器上的原始表单数据时,文件数据已被截断)或formidable未正确读取文件数据。有一些关于设置filenameknownLength这就绕过了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66379294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档