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.
... 并打开该选项。
我在 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.
... 并打开该选项。