我正在尝试使用jQuery和Ajax上传文件。据我所知,客户端的一切都很好。我的意思是我可以看到文件被发布和所有(使用Firebug控制台),但在服务器端我没有收到任何东西。 这是我正在使用的代码:
var form_data = new FormData($('#share-music-form')[0]);
$.ajax({
type: 'post',
url: window.baseurl+'/feeds/ajax/save_music/',
data: form_data,
success: function () {
console.log('file DONE!');
},
xhrFields: {
// add listener to XMLHTTPRequest object directly for progress (jquery doesn't have this yet)
onprogress: function (progress) {
// calculate upload progress
var percentage = Math.floor((progress.total / progress.totalSize) * 100);
// log upload progress to console
console.log('progress', percentage);
if (percentage === 100) {
console.log('DONE!');
}
}
},
error: function(jqXHR, status, error){
console.log(jqXHR);
console.log(status);
console.log(error);
},
processData: false,
contentType: file.type
});
<form action="" method="post" id="share-music-form" enctype="multipart/form-data">
<label class="fileContainer">
<input type="file" name="text" id="music-file" />
</label>
<input type="text" name="status" id="status-music" class="pic-textarea">
</form>
在服务器端:
print_r($_REQUEST);
print_r($_FILE);
输出
数组(text =&gt;我发布的文字) 阵列()
答案 0 :(得分:0)
最后我设法让它运转起来。似乎问题出在contentType
我之前设置为file.type
通过将其设置为false
它似乎解决了这个问题。