0
我希望能夠使用AJAX上傳文件。通過AJAX上傳文件
我嘗試使用(JavaScript的):
$("input[type='file']").change(function(){
var file = document.getElementById("uploadelement").files[0];
$.ajax({
url: "upload.php",
type: "POST",
beforeSend: function(xhr){
xhr.setRequestHeader("X_FILENAME", file.name);
},
success: function(data){
console.log(data);
}
});
});
隨着(PHP):
<?php
$fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME'] : false);
if ($fn) {
// AJAX call
file_put_contents(
'uploads/' . $fn,
file_get_contents('php://input')
);
echo "$fn uploaded";
exit();
}
?>
不過,我遇到的問題,該文件內容顯示不出來。我不知道發生了什麼問題。我發現這個代碼在tutorial,所以我覺得它應該工作。
該文件被上傳到文件夾,但沒有內容。
你沒有發送這個文件,這在查看你的客戶端代碼後很清楚。 –
您是否試過'document.getElementById(「uploadelement」)。files;'而不是'document.getElementById(「uploadelement」)。files [0];'? []括號通常用於多次上傳。可能是問題,但我不能100%確定。 –
@Fred'document.getElementById(「uploadelement」)。files'只返回一個數組。 – Shawn31313