0
我使用的代碼從這個地方
處理: Uploading Multiple Files using AJAXAJAX/JQuery的文件上傳 - 8日圖片未定義的指數,由PHP
高達7張獲得上傳(大約大小爲1MB),當我做第八圖像(或當我選擇了等於或大於8倍的圖像),這個錯誤回來:
公告:未定義的索引:在電子商務圖片:\ Apache軟件基金會 \ APACHE2.2 \ htdocs中\第10行的ReGeneSys \ upload2.php
警告:I對於E的foreach()供給NVALID論點:\ Apache軟件基金會 \ APACHE2.2 \ htdocs中\上線ReGeneSys \ upload2.php 10
的HTML是:
<div id="main" style="width:40%;margin:0 auto;text-align:center;" ><br/>
<h4>Use this if you want to upload multiple images</h1>
<form method="post" enctype="multipart/form-data" action="upload2.php">
<input type="file" name="images" id="images" multiple />
<input type="hidden" name="logId" id="logId" value="<?php echo $_REQUEST['log_id'] ?>" />
<button type="submit" id="btn">Upload Files!</button>
</form>
<div id="response"></div>
<ul id="image-list">
</ul>
</div>
的JS是:
var logId= document.getElementById("logId").value;
//alert(logId);
(function() {
var input = document.getElementById("images"),
formdata = false;
/* function showUploadedItem (source) {
var list = document.getElementById("image-list"),
li = document.createElement("li"),
img = document.createElement("img");
img.src = source;
li.appendChild(img);
list.appendChild(li);
} */
if (window.FormData) {
formdata = new FormData();
document.getElementById("btn").style.display = "none";
}
input.addEventListener("change", function (evt) {
document.getElementById("response").innerHTML = "Uploading . . ."
var i = 0, len = this.files.length, img, reader, file;
for (; i < len; i++) {
file = this.files[i];
if (!!file.type.match(/image.*/)) {
if (window.FileReader) {
reader = new FileReader();
/*reader.onloadend = function (e) {
showUploadedItem(e.target.result, file.fileName);
};*/
reader.readAsDataURL(file);
}
if (formdata) {
formdata.append("images[]", file);
}
}
}
if (formdata) {
$.ajax({
url: "upload2.php?logId="+logId,
type: "POST",
data: formdata,
processData: false,
contentType: false,
success: function (res) {
document.getElementById("response").innerHTML = res;
}
});
}
}, false);
}());
的PHP是:
$log_id=$_REQUEST['logId'];
print_r($_FILES);
foreach ($_FILES["images"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$name = $_FILES["images"]["name"][$key];
$path="screens/";
$append_Name=getScalar("SELECT (COALESCE(MAX(screen_id),1)+1) FROM screenshots LIMIT 1");
//print_r($_FILES);
//$image_name=$_FILES['images']['tmp_name'][$key];
$name=$append_Name."_".$name;
move_uploaded_file($_FILES["images"]["tmp_name"][$key], "screens/" . $name);
..// other part of the PHP
}
}
N.B. getScalar是一個返回結果源的第一個值的函數。
請你幫我瞭解發生在第7張圖片上的問題。 再一次提到,代碼工作絕對好,我沒有上傳1MB大小的第8張圖片。
錯誤追蹤到這條線:
foreach ($_FILES["images"]["error"] as $key => $error)
感謝。
沒有幫助,我的upload_max_filesize = 100M,max_file_uploads = 100。沒辦法,7頁2MB的文件將使100M吧?或者M是否意味着Megabits? –