2013-09-20 3 views
1

У меня есть простая форма загрузки файлов и есть PHP, который обрабатывает его. Проблема im заключается в том, что он не загружает файлы. Что он делает, так это сохранить файл с именем «Array» без расширения файла.многократная загрузка файлов не работает правильно

Вот мой код до сих пор:

<form method="post" action="" enctype="multipart/form-data"> 
    <input name="note[]" type="file" multiple="multiple"> 
    <button type="submit" name="upload_notes">Upload</button></p> 
</form> 

и

$upload_notes = (isset($_POST['upload_notes']) ? true : false); 

if ($upload_notes) { 

    $user_notes_folder = 'user-notes/' 
    $valid_formats = array("doc", "pdf", "docx", "rtf"); 
    $max_file_size = 100000; 
    $count = 0; 

    foreach ($_FILES['note']['name'] as $f => $name) {  
     if ($_FILES['note']['error'][$f] == 4) { 
      continue; 
     }   
     if ($_FILES['note']['error'][$f] == 0) {    
      if ($_FILES['note']['size'][$f] > $max_file_size) { 
       $message[] = "$name is too large!."; 
       continue; 
      } 
      elseif(! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats)){ 
       $message[] = "$name is not a valid format"; 
       continue; 
      } 
      else{ 
       if(move_uploaded_file($_FILES["note"]["tmp_name"][$f], $user_notes_folder.$_FILES["note"]["name"])) 
       $count++; 
      } 
     } 
    } 
} 

ответ

1

$user_notes_folder.$_FILES["note"]["name"] является массивом.

Вероятно, должно быть

$user_notes_folder.$_FILES["note"]["name"][$f] 
0

Это потому, что $ _FILES [ "примечание"] [ "имя"] на самом деле массив. Измените следующее:

if(move_uploaded_file($_FILES["note"]["tmp_name"][$f], $user_notes_folder.$_FILES["note"]["name"])) 

To:

if(move_uploaded_file($_FILES["note"]["tmp_name"][$f], $user_notes_folder.$_FILES["note"]["name"][$f])) 
Смежные вопросы