我正在尝试使用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);
哪个输出
Array(text =>我发布的文本)Array()
最终,我设法使其正常运行。看来问题出在contentType
我先前设定的问题上file.type
。
通过将其设置为false
似乎已解决了该问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句