2014-09-10 72 views
0

我在我的HTML表單中有很多文件輸入。他們都在陣列中。如何不上傳空文件輸入

例如:

<input type="file" name="attach[]"> 
<input type="file" name="attach[]"> 
<input type="file" name="attach[]"> 
<input type="file" name="attach[]"> 

我怎樣才能找到PHP空的投入?

+0

對不起語言,我不太懂英語 – 2014-09-10 13:21:16

回答

0

所有字段(即使是空的)被髮送到服務器,每場都會有其信息(tmp_namenamesizeerror,......),雖然它是空的數組項。

只需對照UPLOAD_ERR_NO_FILE(int:4)常量檢查$_FILES['attach']['error'][$i]

有關文件上傳錯誤消息的更多信息,請參閱the official PHP manual page

請注意,對於具有相同名稱<input type="file" name="attach[]">一堆文件的陣列看起來像這樣(在這種情況下三個文件輸入字段):

$_FILES['attach'] => array(
    'name' => array(
     0 => 'File 1.jpg', 
     1 => 'File 2.pdf', 
     2 => '' 
    ), 

    'error' => array(
     0 => 0, 
     1 => 0, 
     2 => 4 
    ), 

    'tmp_name' => array(
     0 => 'foo', 
     1 => 'bar', 
     2 => '' 
    ) 

    // ... 
) 
1

使用這種在您的每一個,當你上傳文件

<?php 
if(!empty($_FILES['attach'][$i])) 
{ 

//upload function 

} 

?> 
0

我建議你檢查的大小,如果是大於0,然後上傳或在你認爲合適的方式處理它

foreach($_FILES['attach']['size'] as $file) { 
    if($file > 0) { 
     // Upload 
    } 
}