我有这个小的AJAX脚本来处理文件上传:
$('body').on('change', '#uploadFile', function() {
// Post-Data
var data = new FormData();
data.append('file', this.files[0]);
//data.append('foo', 1);
// Ajax-Call
$.ajax({
url: "uploadUserpic.php",
data: data,
type: "POST",
processData: false,
contentType: false,
success: function(evt) {
$("#message").html(data);
}
});
});
文件上传本身有效,但未显示成功消息(#message
中)。为什么是这样?以下是上传的小脚PHP脚本:
$uploaddir = '../data/';
$uploadfile = $uploaddir . basename($_FILES['file']['name']);
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
echo "File Upload OK.\n";
} else {
echo "Something went wrong\n";
}
答案 0 :(得分:0)
因此,解决方案是将success函数包装到另一个函数中。不要问我为什么。不要问我为什么一个人必须花上几个小时才能阅读这些重要信息:
$('body').on('change', '#uploadFile', function() {
// Post-Data
var data = new FormData();
data.append('file', this.files[0]);
//data.append('foo', 1);
// Ajax-Call
$.ajax({
url: "uploadUserpic.php",
data: data,
type: "POST",
processData: false,
contentType: false,
success : handleData
});
});
function handleData(data) {
$("#message").html(data);
//do some stuff
}