我有一个包含文件输入字段的表单,如下所示:
<form id="upload" action="http://touchtracker.s3-us-west-1.amazonaws.com/" method="post" enctype="multipart/form-data">
<input type="hidden" name="key" value="Hansol/${filename}"><br>
<input type="file" id="fileUpload" name="file"> <br>
<input type="submit" name="submit" value="Upload to Amazon S3">
</form>
此表单将文件提交到公共AWS存储桶。此外,我有一个名为bugout
的变量,它包含一些冗长的日志。我希望能够使用此表单将文件上传到我的AWS账户,该文件应包含此变量bugout
中包含的数据。
我尝试使用如下的formData,但导致400错误
var fd = new FormData();
var file = new Blob([bugout.output], {type: 'plain/text'});
fd.append('file', file, 'fileName.txt');
fd.append('key','subFolder/${filename}');
$.ajax({
url: 'http://touchtracker.s3-us-west-1.amazonaws.com/',
method: 'post',
data: fd,
processData: false, //this...
contentType: false //and this is for formData type
});
我尝试发送&#34; abcd&#34;而不是bugout.output
,所以可能没有问题。 AWS site上有大量错误代码有400状态。我怎么从这里弄清楚?
答案 0 :(得分:0)
这只是Formdata的两个附加顺序的问题。更改为以下顺序解决了问题。
fd.append('key','subFolder/${filename}');
fd.append('file', file, 'fileName.txt');