2013-05-29 3 views
0

У меня есть форма, которая загружает несколько файлов. PHP-код, который я использую, работает отлично, но я хотел бы также переименовать файлы и не знаю, как это сделать. Я думаю, что добавление отметки времени к названию было бы лучшим ответом. Вот рабочий код до сих пор:Переименование нескольких файлов при загрузке

/* FILE UPLOAD CODE */ 
{ 
    $number_of_file_fields = 0; 
    $number_of_uploaded_files = 0; 
    $number_of_moved_files = 0; 
    $uploaded_files = array(); 
    $upload_directory = dirname(__file__) . '/uploads/'; //set upload directory 
    /** 
    * we get a $_FILES['file'] array , 
    * we procee this array while iterating with simple for loop 
    * you can check this array by print_r($_FILES['file']); 
    */ 
    for ($i = 0; $i < count($_FILES['file']['name']); $i++) { 
     $number_of_file_fields++; 
     if ($_FILES['file']['name'][$i] != '') { //check if file field empty or not 
      $number_of_uploaded_files++; 
      $uploaded_files[] = $_FILES['file']['name'][$i]; 
      if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $upload_directory . $_FILES['file']['name'][$i])) { 
       $number_of_moved_files++; 
      } 

     } 

    } 

} 
/* END FILE UPLOAD CODE */ 

Любая помощь на том, что добавлять и где для достижения этой цели было бы весьма признателен.

ответ

0

Если вы хотите, чтобы то же имя всех загружаемых файлов, то вы можете получите имя, используя $_GET. Например:

<form action="upload.php" method="post"> \\ this would send it to your page 
<input type='text' size='30' name='filename'/> 
<input type='submit' /> 
</form> 

просто получить имя, используя $_GET как этот

$name = $_GET['filename']; 

и теперь запустить свой код, но переместить файл с таким именем, как этот

move_uploaded_file($_FILES['file']['tmp_name'][$i], $upload_directory .   $name[$i]) 
0

Вы можете указать новое имя файла в качестве второго параметра в move_uploaded_file()

Например:

move_uploaded_file($_FILES['file']['tmp_name'][$i], $upload_directory . "new_file_name"); 
+0

Это работает, но если 2 человека загружают файл, второй перезаписывает первый, и нет расширения файла – Michael

+0

Я предполагаю, что я просто показывал, как дать файлу другое имя whe n переместите его. Но да, я вижу, вам все еще нужно решение для создания нового уникального имени ... – Dan

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