0
我想上传使用AJAX的文件,但我的输出总是空...用AJAX上传文件 - XHR
有啥错误或什么从代码中缺少什么?谢谢!
HTML:
<form id="data" method="post" enctype="multipart/form-data">
<input name="file" type="file" />
<input type="button" value="Upload" />
</form>
<progress></progress>
JS:
$(":file").bind('change blur', function(e) {
var file = this.files[0];
name = file.name;
size = file.size;
type = file.type;
console.log(name);
console.log(size);
/**
OUTPUT:
2-years-anniversaryv1.png jquery.form.img.js:10
18407
*/
var formData = new FormData($(this)[0]);
$.ajax({
url: '/upload',
type: 'POST',
xhr: function() {
myXhr = $.ajaxSettings.xhr();
if(myXhr.upload) {
myXhr.upload.addEventListener('progress', progress, false);
}
return myXhr;
},
success: function(result)
{
console.log($.ajaxSettings.xhr().upload);
alert(result);
},
data: formData,
cache: false,
contentType: false,
processData: false
});
});
function progress(e){
if(e.lengthComputable){
$('progress').attr({value:e.loaded,max:e.total});
}
}
PHP:
private function upload_file() {
$this->getLog(print_r($_FILES,true));
$returnData = array("file" => 'asd');
echo json_encode($returnData);
}
getLog outpu T:
Array
(
)
Array
(
)
Array
(
)
这有点冗长...... copy(“php:// input”,“file_name_here”)是什么问题? –
嗯...我不太确定PHP输入流是否可以像文件一样被复制。 – Licson
如果我没有先尝试过,我不会建议它:p它工作得很好。 –