使用Ajax上传文件 - 在服务器端没有接收任何内容

时间:2014-11-14 16:15:14

标签: jquery ajax file-upload

我正在尝试使用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;我发布的文字)   阵列()

1 个答案:

答案 0 :(得分:0)

最后我设法让它运转起来。似乎问题出在contentType我之前设置为file.type 通过将其设置为false它似乎解决了这个问题。