使用 FileReader api 上传二进制文件时遇到问题

Posted

技术标签:

【中文标题】使用 FileReader api 上传二进制文件时遇到问题【英文标题】:Trouble uploading binary files using FileReader api 【发布时间】:2019-01-28 17:07:31 【问题描述】:

我正在使用 FileReader.readAsBinaryString 使用 multipart/form-data POST 请求将文件上传到服务器。

文件被发送,服务器接收并保存文件。

当我尝试在服务器上打开文件时,我收到消息说它已损坏(png 图像)或我看到一个空白文档(如果是 pdf)。显然出了点问题。

是否需要对 FileReader.onload 处理程序中 event.target.result 中返回的数据应用其他编码?我还缺少其他东西吗?

谢谢

【问题讨论】:

【参考方案1】:

尝试使用FormData,而不是将文件作为二进制字符串读取并手动构造 multipart/form-data 请求。在这里查看我的回复: html5 File API readAsBinaryString reads files as much larger, different than files on disk

【讨论】:

以上是关于使用 FileReader api 上传二进制文件时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

使用FileReader接口读取文件内容

js上传图片&预览(filereader)

毕业论文中使用的技术—FileReader接口

HTML文件上传

将大文件切成块并使用 ajax 和 html5 FileReader 上传

图片上传 new FormData() ,new FileReader()