2013-08-21 26 views
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) 

感謝。

回答

0

你可能想看看這些:

; Maximum allowed size for uploaded files. 
upload_max_filesize = 40M 

; Must be greater than or equal to upload_max_filesize 
post_max_size = 40M 

這可能是你的最大上傳尺寸爲$_FILES太大。

奇怪的事情發生;)

+0

沒有幫助,我的upload_max_filesize = 100M,max_file_uploads = 100。沒辦法,7頁2MB的文件將使100M吧?或者M是否意味着Megabits? –