当前位置: 首页 > 面试题库 >

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

微生曾琪
2023-03-14
问题内容

我正在使用FileReader.readAsBinaryString使用多部分/表单数据POST请求将文件上传到服务器。

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

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

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

谢谢


问题答案:

尝试使用FormData而不是将文件作为二进制字符串读取,并手动构造multipart / form-data请求。请在此处查看我的回复:
HTML5文件API
readAsBinaryString读取的文件与磁盘上的文件一样大,而与磁盘上的文件不同



 类似资料:
  • 下面是一个上传二进制文件的例子,WebService类的代码如下: package service; import java.io.InputStream; import java.io.OutputStream; import java.io.FileOutputStream; import javax.activation.DataHandler; public class 

  • 问题内容: 为了将二进制文件上传到URL,建议使用本指南。但是,该文件不在目录中,而是存储在MySql db的BLOB字段中。BLOB字段在JPA中映射为属性: 我以这种方式稍微修改了指南中的代码: 我没有使用分块流。使用的标头是: 主机正确接收了所有标头。它还接收上载的文件,但不幸的是,它抱怨该文件不可读,并且断言所接收文件的大小比我的代码输出的大小大37个字节。 我对流,连接和byte []的

  • 问题内容: 我正在使用Flash录制音频并将其上传到节点服务器。Flash客户端是jrecorder的变体。当用户完成录制后,将使用POST请求(而不是表单,因为Flash无法创建文件)来上传音频,并将音频ByteArray作为POST请求的数据(请参见此处的更多信息)。 我可以使用下面的代码在Node- land上正确接收文件,但是发出的音频被破坏了,您听不到任何声音。话虽如此,该文件的内容可以

  • 更新:为了将来的参考,亚马逊现在已经更新了询问时的文档。根据@Loren Segal在下面的评论:- 我们已经更正了最新预览版中的文档,以正确记录此参数。很抱歉搞砸了! 有人能帮我使用上传二进制文件吗?

  • 当我使用inspector工具时,它表示元素是一个输入框。我不知道如何解决这个问题,因为我对python非常缺乏经验 输出是一个空字符串,尽管网站显示了一封电子邮件供我使用。

  • 我正试图通过我的服务器将一个二进制文件从客户端请求流到谷歌云存储。 我使用Tornado框架将数据从请求流到服务器,并使用Google Cloud Storage API将文件流到Google-方法。 我是Tornado的新手,我正在使用装饰器,这样我就可以从请求中获取数据块,并将每个块上传到Google。 我试着打开一个类似文件的对象,我可以在将文件本身上传到谷歌的同时编写每一个块。 问题是,我