尝试创建多个文件+文本块上传。使用RoR,AngularJS,您也会看到一些Bootstrap的东西。一直在搜索SO和谷歌大约一个小时,虽然不可否认它只是在圈子里跑,我觉得应该有一个简单的错误。这是erb:
<form id="upload-attach-form" class="upload-form" name="upload-attach-form" enctype="multipart/form-data">
<input type="hidden" name="identifier" ng-value="identifier" />
<textarea name="text" class="input-xlarge" placeholder="input text..." style="height:6em;width:30em"></textarea>
<input type="file" name="files" id="uploaded-files" multiple />
</form>
<button class="btn btn-success" ng-click="submitForm()">Send</button>
和相关的js:
$scope.submitForm = function(){
var upload_data = new FormData($('#upload-attach-form'));
$.ajax({
type: "POST",
url: "/upload_attachment",
data: upload_data,
contentType: false,
processData: false,
success: function(){
$("#attachment-ctrl").modal('hide'); //hide popup
},
error: function(){
alert("failure");
}
});
}
这会导致出站请求如下:
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryoIsRaBissNVsFEdr
Content-Length: 44
...
Request-Payload: ------WebKitFormBoundaryoIsRaBissNVsFEdr--
<<nothing here>>
Response-Headers: ...
这意味着我的形式中没有任何东西。不知道从哪里开始,在这里和那里随意更换东西(有点不舒服,所以可能不会直接思考)。
答案 0 :(得分:2)
尝试替换:
var upload_data = new FormData($('#upload-attach-form'));
通过这个:
var upload_data = new FormData($('#upload-attach-form')[0]);