2014-04-25 65 views
1

我在YouTube上找到了一個很好的教程Anthoniraj Amalanathan。在視頻教程中,它適用於下襬,但是當我嘗試複製它時,出現錯誤。下面是代碼:多文件上傳herror

<form action="<?php $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post"> 
    <input type="file" name="upload[]"> 
    <input type="file" name="upload[]"> 
    <input type="submit" name="send" value="Send Now"> 
</form> 

<?php 

if(isset($_FILES['upload'])=== true) 
{ 
    $files = $_FILES['upload']; 
    for($x=0;$x<count($files['name']);$x++) 
    { 
     $name=$files['name'][$x]; 
     $tmp_name = $file['tmp_name'][$x]; 
     move_uploaded_file($files,'test/'.$name); 
     echo 'Upload OK'; 
    } 
} 

?> 

該消息指出錯誤是第12行($tmp_name = $file['tmp_name'][$x];)但我似乎沒有找出原因。

有人可以幫忙嗎?

回答

2

試試這個,我測試了它,它適用於我。

<form action="<?php $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post"> 
<input type="file" name="upload[]"> 
<input type="file" name="upload[]"> 
<input type="submit" name="send" value="Send Now"> 
</form> 
<?php 
if(isset($_FILES['upload'])=== true) { 
    $files = $_FILES['upload']; 
    for($x=0;$x<count($files['name']);$x++) { 
     $name = $files['name'][$x]; 
     $tmp_name = $file['tmp_name'][$x]; 
     move_uploaded_file($files['tmp_name'][$x],'test/'.$name); 
     echo 'Upload OK'; 
    } 
} 

?> 

我得到的錯誤來自使用數組作爲臨時。文件位置。通過將其更改爲$ files ['tmp_name'] [$ x],它工作。

老:move_uploaded_file($files,'test/'.$name);

新:move_uploaded_file($files['tmp_name'][$x],'test/'.$name);

+0

Whow,完全正確的......而且我發現move_upload上面的行是完全不必要的。 感謝您的幫助 –

+0

如果您願意,您可以實際使用該變量$ tmp_name,而不是移動代碼中的$ files ['tmp_name'] [$ x]。 –

1

它只是一個錯字。從未聲明$file,應該是$files

這裏:

$tmp_name = $file['tmp_name'][$x]; 
//    ^missing s 

另外這裏:

move_uploaded_file($files,'test/'.$name); 
//     ^^^^^^ shouldn't this be $tmp_name? 
+0

很好的捕獲我甚至沒有注意到,哦,等等...''$ tmp_name'永遠不會被使用! – meda

0

嘗試這樣的:

<?php 
if(is_uploaded_file($_FILES['upload']['tmp_name'])){ 
    foreach($_FILES['upload']['name'] as $x=>$name) { 
     $name = basename($_FILES['upload']['name'][$x}); 
     $folder = 'test/'; 
     $full_path = $folder.$name ;  
     if(move_uploaded_file($_FILES['upload']['tmp_name'][$x], $full_path)) { 
      echo 'Upload OK'; 
     } else { 
      echo 'Upload Failed'; 
     } 
    } 
}else{ 
    echo 'Upload Not Received'; 
} 
?>