我有這樣的代碼在客戶端:阿賈克斯PHP文件上傳錯誤
fileUpload: function monkey(){
var file = t.gI("photoFile"); //get element by photoFile
var formData = new FormData();
console.log(file.files.length);
formData.append("upload", file.files[0]);
var req = t.gR(); //XMLHTTPRequest
req.open('POST', 'php/fileupload.php', true);
req.setRequestHeader("Content-Type", "multipart/form-data", true);
req.send(formData);
req.onreadystatechange = function() {
if (req.readyState === 4) {
if (req.status == 200 && req.status < 300) {
t.gI("eventBox").innerHTML = req.responseText; //eventbox error handler
adminHandler.eventBox();
}
}
}
},
這在服務器端:
<?php
header('Content-Type:multipart/form-data');
echo $_FILES['upload']['tmp_name'];
?>
而且我得到這個錯誤信息:
[15- 2015年6月15日12時03分21秒] PHP警告:缺少邊界多部分/形式數據POST數據在未知的行0 [15-Jun-2015 12:03:21 UTC] PHP公告:未定義索引:upload in /家庭/ webprogb /的public_html/PHP /文件上傳.php on line 4
我能做些什麼來解決它?
您不從服務器輸出multipart/form-data。這對於發送正常的非文件上傳形式的客戶**到服務器。你的服務器端腳本應該只是'<?php echo'foo'?>'。如果你所做的只是拋出一個文件名,就不需要頭文件。未定義的索引意味着沒有文件上傳。 'var_dump($ _ FILES)'可能會顯示爲空。 –