2014-01-16 5 views
0

FormData Object을 사용하여 여러 이미지를 업로드하려고합니다. 문제는 스크립트가 오직 하나의 이미지 만 업로드하고 다른 이미지는 아무것도하지 않는다는 것입니다.AJAX를 사용하여 AJAX를 사용하여 여러 이미지 업로드하기

이 스크립트는 단지 여기서

크롬

에서 사용될

스크립트 JS이다

PHP에서
(function() { 
    var count = 0; 

    function showUploadedItem(source,index) { 
     var list = $("#image-list"); 
     list.append("<li><img class='" + count + "' src=''></li>"); 
     $("." + count + "").attr("src",source); 
     count++; 
    } 

    $('[type="file"]').change(function() { 
     var file = this.files; 

     $.each(file, function(i, filename) { 
      reader = new FileReader(); 
      reader.onloadend = function (e) { 
       showUploadedItem(e.target.result, filename.name); 
      }; 

      reader.readAsDataURL(filename); 
     }); 
    }); 

$('button').click(function() {  

    var files = $("[type='file']")[0].files; 

    $.each(files, function(i, file) { 

     var formdata = new FormData(); 
     formdata.append('images', file.name, file); 

     console.log(formdata); 

     $.ajax({ 
      url :"up.php", 
      data:formdata, 
      type:"POST", 
      contentType: false, 
      processData: false, 
     }); 
    }); 
}); 
}()); 

I이있다 : I는 I 때문에 비트를 코드를 수정

<?php 
    move_uploaded_file($_FILES["images"]["tmp_name"], "img/" . $_FILES['images']['name']); 
?> 

문제를 발견했지만 지금은 이미지를 제출할 때 PHP 제한 파일 업로드에 문제가 있으며 양식 데이터가 파일을 하나씩 업로드하지 않습니다.

EDIT2 : 내가 찾은 해결책은 클릭 이벤트 내에 각 루프를 넣고 각 루프 내에서 아약스 호출을 넣는 것입니다.

+0

는 IE 작업에 대한 수행 formdata' 마음 '에 보관 파일을, 난 당신이 http://blog.w3villa.com 숨겨진 iframe이 방법으로 갈 제안/프로그래밍/업로드 - 이미지없이 - 제출 - 양식 - 모든 - 브라우저에서 작동/ –

+0

크롬에만 사용됩니다 – abaracedo

+0

한번에 제출하거나 하나씩 제출 하시겠습니까? – pocesar

답변

0

FormData는 파일 목록이 아닌 단일 파일을 사용합니다. 코드에서 file 실제로 FileList이다, filename

formdata.append("images[]", filename); 
+0

업로드를 위해 30 개의 이미지를 선택하고 제출을 클릭하면 php.ini 파일에 존재하는 제한 인 20 개의 이미지 만 업로드합니다. 지금은 클릭 기능에서 생성 한 각 루프에 새 FormData 객체를 만드는 것이 유일한 해결책이지만 1000 개의 이미지를 넣으면 1000 개의 아약스 호출을 수행 할 수 있습니다. – abaracedo

+0

@Bultack은 FTP 또는 SSH에 대해 들어 보셨습니까? – Musa

+0

FTP 옙, SSH 무언가하지만 결코 사용하지 않았습니다. 왜? – abaracedo

관련 문제