我有一個php腳本將圖像上傳到一個文件夾。PHP注意:未定義的索引:文件上傳的照片
它當地的工作,但是當我把它放在託管服務器,我得到了以下錯誤消息上:
[週四21年5月18日:45:00.833970 2017年] [fcgid:警告] [PID 37560 ] [客戶端 151.229.83.93:44238] mod_fcgid:stderr:PHP注意:未定義索引: /home/linnas01/g/domainname.com/user/htdocs/php/uploadphoto.php文件 第9行,referer: http://domainname.com/photoupload.html
任何人都可以解釋爲什麼發生這種情況,以及如何解決這個問題?
的PHP看起來像這樣
<?php
if (0 < $_FILES['file']['error']) {
echo 'Error: ' . $_FILES['file']['error'] . '<br>';
}
else {
move_uploaded_file($_FILES['file']['tmp_name'], 'images/' . $_FILES['file']['name']);
}
?>
我的HTML文件看起來像這樣
<form enctype="multipart/form-data">
<input id="upload-input" type="file" name="file" multiple="multiple" enctype="multipart/form-data">
<input type="submit">
</form>
的文件被公佈阿賈克斯。
var formData = new FormData();
for (var i = 0; i < files.length; i++) {
var file = files[i];
fileNames.push(file.name);
// add the files to formData object for the data payload
formData.append("image", file);
}
$.ajax({
url: 'uploadphoto.php',
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function(data){
console.log(data);
}
});
I have also configured the directories and files as explained here。
[PHP: 「注意:未定義變量」, 「注意:未定義指數」 和 「通知:未定義偏移」]的可能的複製(http://stackoverflow.com/questions/4261133/php-notice -undefined-variable-notice-undefined-index-and-notice-undef) – Bytewave
tl; dr對於'name'屬性'file',你沒有任何'POST'文件字段。如果我們知道您的表單看起來像什麼,我們可以提供更多幫助。 – Bytewave
檢查是否在嘗試使用'_FILES ['file']'之前已經填充。 – chris85