当我将文件上载到服务器时,表单边界正在写入我的文件,从而使其损坏

时间:2019-03-29 15:09:14

标签: amazon-s3 file-upload axios postman

我现在已经在Postman和Axios提交的基本表格中进行了尝试。

我正在为S3生成signedUrl,因此可以将对象放入存储桶中。工作正常,一切顺利,文件进入存储桶。但是,我注意到由于Zip文件中的错误,导致步进功能失败,并且在调查后发现,通过表单上传的文件比通过管理界面直接上传到S3的文件要大。

我在文本编辑器中打开了Zip文件,并在内容周围找到了一个包装,如下所示:

------WebKitFormBoundary19fSiKSo1hKo8CkO
Content-Disposition: form-data; name="file"; filename="surveys.zip"
Content-Type: application/x-zip-compressed

然后在底部

------WebKitFormBoundary19fSiKSo1hKo8CkO--

删除这些文件时,我可以打开文件并查看文件。我最初是在与Postman进行测试时,以为可能是罪魁祸首,但是在与Axios制作表单之后,我看到的是同一件事。

有人知道如何解决此问题吗?我试过添加/删除标题,但无法弄清楚!

1 个答案:

答案 0 :(得分:0)

弄清楚了。显然,邮差和我构建Axios表单的方式存在相同的问题。我正在序列化表单,而不仅仅是将数据发布到签名的URL。

我不是像FormData那样提交数据,而是像这样直接提交

let data = document.getElementById('file').files[0]
axios.put(signedUrl, data)