2016-08-07 4 views
-2
echo '<pre>'; 
$img = $_FILES['img']; 

if(!empty($img)) 
{ 
    $img_desc = reArrayFiles($img); 
    print_r($img_desc); 

    foreach($img_desc as $val) 
    { 
     $newname = date('YmdHis',time()).mt_rand().'.jpg'; 
     move_uploaded_file($val['tmp_name'],'./uploads/'.$newname); 
    } 
} 

function reArrayFiles($file) 
{ 
    $file_ary = array(); 
    $file_count = count($file['name']); 
    $file_key = array_keys($file); 

    for($i=0;$i<$file_count;$i++) 
    { 
     foreach($file_key as $val) 
     { 
      $file_ary[$i][$val] = $file[$val][$i]; 
     } 
    } 
    return $file_ary; 
} 

.복수 파일 업로드 : 배열

Array 
(
    [0] => Array 
     (
      [name] => pix.jpg 
      [type] => image/jpeg 
      [tmp_name] => /tmp/php4Ovz7o 
      [error] => 0 
      [size] => 6720 
     ) 

) 

위에서 볼 수 있듯이, 그것은 하나의 파일에서 작동하지만 4 개 파일을 업로드 할 때

그리고 아래 php.ini 대기 상태를 보여주는 브라우저 콘솔 네트워크 탭에서 확인, 로딩을 계속 :

128M > 64M > 32M :: memory_limit > post_max_size > upload_max_filesize 

누군가가 그것에 대해 밝힐 수 있습니까? 미리 감사드립니다!

+0

my_parser.php); –

+0

여기에 양식 html을 넣었어야합니다. –

답변

0

저는 이것을 사용해 왔으며 작동합니다. 나는 그것을 가지고 : https://www.developphp.com/video/PHP/Multiple-Files-Simultaneous-Upload-Array-Programming-Tutorial

그것은 모두 루프와 foreach 루프에 관한 것이다.

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
</head> 
<body> 
<form action="my_parser.php" method="post" enctype="multipart/form-data"> 
    <p><input type="file" name="file_array[]"></p> 
    <p><input type="file" name="file_array[]"></p> 
    <p><input type="file" name="file_array[]"></p> 
    <input type="submit" value="Upload all files"> 
</form> 
</body> 
</html> 

나는 경우 (는 isset ($ _ FILES [ '의 myFile'])) {} 거기 당신이 인 print_r ($을해야 디버깅하는 _ FILES에 아무것도 표시되지 않았다

<?php 
// Script written by Adam Khoury for the following video exercise: 
// http://www.youtube.com/watch?v=7fTsf80RJ5w 
if(isset($_FILES['file_array'])){ 
    $name_array = $_FILES['file_array']['name']; 
    $tmp_name_array = $_FILES['file_array']['tmp_name']; 
    $type_array = $_FILES['file_array']['type']; 
    $size_array = $_FILES['file_array']['size']; 
    $error_array = $_FILES['file_array']['error']; 
    for($i = 0; $i < count($tmp_name_array); $i++){ 
     if(move_uploaded_file($tmp_name_array[$i], "upload/".$name_array[$i])){ 
      echo $name_array[$i]." upload is complete<br>"; 
     } else { 
      echo "move_uploaded_file function failed for ".$name_array[$i]."<br>"; 
     } 
    } 
} 
?>