【问题标题】:Can javascript uploaders change file's binary code?javascript 上传者可以更改文件的二进制代码吗?
【发布时间】:2017-10-06 11:22:23
【问题描述】:

我在 Angular 2 项目中工作。后端开发人员向我打开了一个错误,但我不知道该怎么办。 以下是步骤和详细信息:

1- 我创建了一个名为 1.txt 的文件,文件里面只有 1

2- 我通过https://github.com/valor-software/ng2-file-upload这个包把这个文件上传到服务器

3- 然后我要求服务器给我文件列表,然后我点击 1.txt 下载。

4- 下载完成后,我在 1.txt 中看到这些行:

------WebKitFormBoundaryt97WFszMgfTbTJJm
Content-Disposition: form-data; name="file"; filename="11.txt"
Content-Type: text/plain

1
------WebKitFormBoundaryt97WFszMgfTbTJJm--

我只想看看1。此结果也会损坏其他文件,例如 png、docx 等。

所以,后端开发人员对我说: 上传文件时,JS库不应该改变二进制文件的内容。

但我看不到任何设置。我应该对他们说什么?

附:后端开发人员离我和他们用 Java 编写的项目很远。

【问题讨论】:

    标签: javascript angularjs file-upload ng-file-upload


    【解决方案1】:

    默认情况下,您使用的库将生成多部分请求正文。

    这是正常的。 This is standard。如果您使用常规(无 JavaScript)表单提交来 POST 文件,就会发生这种情况。这就是大多数服务器端系统期望文件通过 HTTP 发送的方式。

    您可以告诉他们编写他们的代码以期望该格式的数据。

    或者,您可以查看您的库的文档,其中说:

    disableMultipart - 如果为“true”,则禁用使用多部分表单进行文件上传,而是流式传输文件。某些 API(例如 Amazon S3)可能希望文件是流式传输的,而不是通过表单发送的。默认为 false。

    …然后打开该选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      • 2011-03-05
      • 2011-08-29
      • 2012-03-08
      相关资源
      最近更新 更多