2013-02-08 233 views
0

我想上傳多個圖像到文件夾使用PHP。該代碼可以打印出的文件名,這意味着我得到的文件,但現在它不會上傳他們,我沒有錯誤:下面是我的代碼PHP上傳文件到文件夾

<?php 
    $target = "image_uploads/"; 
    if(isset($_FILES['FILE_NAME'])){ 
     foreach($_FILES['FILE_NAME']['tmp_name']as $key => $error){ 
      print_r($key); 
      $file_upload = $key.$_FILES['FILE_NAME']['name'][$key]; 
      #print image names 
      echo $file_upload.'</br>'; 
      move_uploaded_file($file_upload,$target);  
     } 
    } 
?> 
+0

嘿,如果你發送多個文件,'$ _FILES'應該是一個文件數組,並應該像這樣使用: '$ _FILES ['FILE_NAME'] [0] ['tmp_name']'第一個等 – soyuka 2013-02-08 13:02:53

回答

0

可能發生這樣的目標文件夾是不可寫。

我也認爲,這其中的你沒有得到錯誤的原因是,你有以下幾點:

print_r($key); 

你要跟應該有:

print_r($error); 
2

在目標,你必須提供文件名稱。請使用下面的代碼,

$target = "image_uploads/"; 
if(isset($_FILES['FILE_NAME'])){ 
    foreach($_FILES['FILE_NAME']['tmp_name'] as $key => $error){ 
     print_r($key); 
     $file_upload = $key.$_FILES['FILE_NAME']['name'][$key]; 
     print image names 
     echo $file_upload.'</br>'; 
     move_uploaded_file($file_upload,$target.$_FILES['FILE_NAME']['name']);  
    } 
} 
+0

@vinton Babu它不起作用2 – humphrey 2013-02-08 13:11:27

+0

@humphrey:無論是否進入foreach循環?給予foreach一些空間 – 2013-02-08 13:15:46

+0

@humphery:文件的名稱是$ _FILES ['FILE_NAME'] ['name']。我編輯過。請使用 – 2013-02-08 13:19:15

1

我認爲問題出在foreach循環中。

foreach ($_FILES['FILE_NAME']['tmp_name'] as $key => $val) { 
    // this loops through the tmp_name of $_FILES['FILE_NAME'] 
    // which is a string 
} 

我認爲你的意思是這樣的:通過所有上傳的文件

foreach ($_FILES as $index => $fileArray) { 
    $tmpName = $fileArray['tmp_name']; 
    echo "File at key $index is temporarily uploaded at $tmpName"; 
} 

上面會循環中的代碼,並打印當前的文件名。

+0

謝謝,但也是我的問題是,它沒有上傳到文件夾 – humphrey 2013-02-08 13:14:19

+0

@humphrey - 你甚至知道如何編碼? – 2013-02-08 13:16:39

+0

你檢查過'is_writable($ target)',檢查php是否可以寫入文件夾? – ChrisF 2013-02-08 13:19:19

0

可以有這多種原因:

  1. 試圖從臨時位置的文件移動到目標之前,目標文件夾必須存在,並且還必須是可寫的

  2. 的move_uploaded_file取第二個參數作爲文件名後跟目錄名,所以它可以是這樣的:目標文件夾/ user.file.name.ext

  3. 如果您正在上傳多個文件,那麼$ _FILES必須是如圖所示的鏈接訪問:http://php.net/manual/en/features.file-upload.multiple.php

  4. 爲您可能會遇到PHP錯誤信息,這裏是一個列表:http://php.net/manual/en/features.file-upload.errors.php