javascript 上传者可以更改文件的二进制代码吗?

Can javascript uploaders change file's binary code?

我在 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库不应该改变二进制文件内容。

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

P.S。后端开发人员离我和他们写的项目很远 Java.

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

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

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

或者您可以查看您的图书馆的文档,其中写道:

disableMultipart - If 'true', disable using a multipart form for file upload and instead stream the file. Some APIs (e.g. Amazon S3) may expect the file to be streamed rather than sent via a form. Defaults to false.

... 并打开该选项。