2014-12-22 3 views
0

У меня есть небольшой код, но отсутствует в битах и ​​кусках. Я хочу иметь возможность загружать два файла (не менее, не более) и сохранять их в разных папках. Файлы являются «exe».Загрузите два и только два файла и сохраните их в другой папке в php

файлы: FiLea, FILEB

путь файла для FiLea: /home/abc/Downloads/createA/fileA

путь файла для FILEB: /home/abc/Downloads/createB/fileB

вопрос, у меня есть форма, которая позволяет множественную загрузку, но Безразлично» t загрузить второй файл. Все, что я вижу, это первый файл получать загружены и сохранены в /home/abc/Downloads/createA/fileA

Код:

<?php 

    if(isset($_FILES['files'])){ 

    $errors= array(); 

    foreach($_FILES['files']['tmp_name'] as $key => $tmp_name){ 

      //added from single upload 

    if($file_size > 3000000){ 

     $errors[]='File size must be less than 3 MB'; 

    }  
    if(empty($errors)==true){ 
      echo "Please make sure uploaded file name contains 'fileA' in the name"; 
      echo '<br/>'; 

    if(preg_match("/fileA/i", $file_name)){ 
      $upload_dir = "/home/abc/Downloads/createA/"; 
      $upload_dir_1 = "$upload_dir".$file_name; 
      mkdir($upload_dir, 0777, true); 
      move_uploaded_file($file_tmp,$upload_dir_1); 

     // print_r($upload_dir); 
     echo '<br/>'; 
     echo "Success "; 
     echo "Stored in: " .$upload_dir; 


    if (preg_match("/fileB/i", $file_name)){ 
     $upload_dir = "/home/abc/Downloads/createB/"; 
     $upload_dir_1 = "$upload_dir".$file_name; 
     mkdir($upload_dir, 0777, true); 
     move_uploaded_file($file_tmp, $upload_dir_1); 
     echo '<br/>'; 
     echo "Loaded fileB"; 
     } 

    else{ 
     echo "I am not uploading fileB"; 
    } 
     } 

    } 

    else{ 
    echo "I am not loading fileA"; 
    print_r($errors); 
    } 
} 


<form action="" method="POST" enctype="multipart/form-data"> 
    <input type="file" name="files[]" /><br /> 
    <input type="file" name="files[]" /><br /> 
    <input type="submit"/> 
</form> 
+1

Форма не содержит никакой информации о пути. Вы определяете путь в серверном коде. Задача решена. – developerwjk

+0

Я знаю, что форма не даст никакой информации о пути. Форма здесь позволяет пользователю загружать один/несколько файлов. У меня есть форма и код на стороне сервера, встроенный в тот же файл. То, что я чувствую, где-то из-за логики, второй файл не загружается. –

+0

Это не то, что вы сказали в вопросе. Вы сказали, что они спасаются на том же пути, теперь вы говорите, что второй просто теряется. Будьте более ясны. Теперь я знаю, что вы не захотите это слышать, но если вы действительно отступом своего кода до места, где он был доступен для чтения, вероятно, было бы легче найти ошибку в 10 раз легче. В его нынешнем виде слишком много работы, чтобы рассказать, что находится в цикле, а что нет, и т. Д. – developerwjk

ответ

1

Это утверждение:

if(preg_match("/fileA/i", $file_name)) 

и это утверждение:

if(preg_match("/fileB/i", $file_name)) 

должны быть оценивается отдельно, но в настоящее время у вас есть второй вложенный в фи rst one

+0

Это, несомненно, результат плохой отступов. Вот почему была придумана кнопка 'tab'. – developerwjk

Смежные вопросы