2016-11-30 4 views
0

Я создал несколько функций загрузки файлов в PHP. Когда я пытаюсь загрузить файлы, я выбираю 15 файлов одновременно, когда запрос обрабатывается, только первые четыре файла хранятся в db, и все 15 файлов загружаются в каталог каждый раз.Не удалось загрузить несколько файлов в php

Я также проверил файл PHP.ini, максимальное ограничение на загрузку файла - 50 предварительных запросов, а размер сообщения max 5M. все еще cnt найти любое решение проблемы.

Почему запись сохраняется только для первого файла.

if($_POST['submit']== 'Upload_picture') 
    { 
     //echo "<pre>";  print_r($_FILES['upload_picture']['name']); 
     //die; 

     $album_title = $_GET['name']; 
     $album_id = $_GET['album']; 
     $album_dir = "../images/album/$album_title/"; #album path root directory 
     $db_album_dir = "images/album/$album_title/"; #batadase album path root directory 
     $error = array(); 
     $extension = array('jpg','gif','png','jpeg'); 
     foreach($_FILES['upload_picture']['tmp_name'] as $key => $tmp_name){ 
      $file_name = $_FILES['upload_picture']['name'][$key]; 
      $file_tmp = $_FILES['upload_picture']['tmp_name'][$key]; 
      $ext = pathinfo($file_name, PATHINFO_EXTENSION); 
      $new_filename = rand().".".$ext; #changing name 
      if(in_array($ext,$extension)) 
      { 
       if(move_uploaded_file($file_tmp= $_FILES['upload_picture']['tmp_name'][$key],"$album_dir$new_filename")) 
       { 
       # insert record database 

        $values = [ 
        'album_id' =>$album_id, 
        'image_name' => $new_filename, 
        'album_name' => $album_title, 
        'image_path' => $db_album_dir.$new_filename, 
        'uploaded_date' => date("Y/m/d h:i:s a") 
        ]; 
        include_once "action_page.php"; 
        $tablename = 'album_picture'; 
        $abc = new Demo(); 
        $res = $abc->insert($tablename,$values); 
        unset($abc); 
        $_SESSION['upload_success'] = "Files Uploaded succesfully"; 
        header("location:../upload_album.php?album=$album_id&name=$album_title"); 

       } 
       else 
       { 
         $_SESSION['upload_error'] = "Something went wrong, files cannot be uploaded"; 
       } 

      } 
      else 
      { 
       $_SESSION['upload_warning'] = "Please upload file"; 
       header("location:../upload_album.php?album=$album_id&name=$album_title"); 
      } 
     }//EOF FROEACH 
+0

Прежде всего, проверьте, если все файлы успешно размещены или не напечатав там имя внутри Еогеасп() петли –

+0

Да все файлы отправляются по запросу –

ответ

0

Ваше поле для ввода файла должно быть что-то вроде этого:

<input type="file" id="file" name="name[]" multiple /> 

if(isset($_FILES['upload_picture']['name'])) 
    { 
     $file_name_all=""; 
     for($i=0; $i<count($_FILES['upload_picture']['name']); $i++) 
     { 
       $tmpFilePath = $_FILES['upload_picture']['tmp_name'][$i];  
       if ($tmpFilePath != "") 
       {  
        $path = "propertyimages/"; // create folder 
        $name = $_FILES['upload_picture']['name'][$i]; 
        $size = $_FILES['upload_picture']['size'][$i]; 

        list($txt, $ext) = explode(".", $name); 
        $file= time().substr(str_replace(" ", "_", $txt), 0); 
        $info = pathinfo($file); 
        $filename = $file.".".$ext; 
        if(move_uploaded_file($_FILES['upload_picture']['tmp_name'][$i], $path.$filename)) 
        { 
         $file_name_all.=$filename."*"; 
        } 
      } 
     } 
     $filepath = rtrim($file_name_all, '*'); 
     $tablename = 'album_picture'; 
     $abc = new Demo(); 
     $res = $abc->insert($tablename,$values); 
     unset($abc); 
     } 
     else 
    { 
     $filepath=""; 
    } 
Смежные вопросы