2013-10-29 53 views
2

我用這PHP碼(空!):PHP如果不工作

foreach ($_FILES['ticket_files']['name'] as $key => $value) 
{ 
    if(!empty($_FILES['ticket_files'])) 
    { 

    } 
} 

但是,如果輸入的文件是空白的,但它仍然認爲有一個文件存在和運行的代碼。

+0

您是否嘗試過回顯文件的內容,看看它看到了什麼?這可能會拉高你不期望的東西。 – DiMono

+5

'empty()'不檢查文件的內容,它檢查變量的內容。 '$ _FILES ['ticket_files']'指向上傳文件的一系列信息 - 包括'name' - 所以如果選擇了一個文件它永遠不會是空的。 – Izkata

回答

0

試試這個

foreach ($_FILES['ticket_files']['name'] as $key => $value) 
{ 
    if(!$_FILES['ticket_files']['error'][$key]) 
    { 
     //Do Stuff 
    } 
} 
0

您可以使用此:

if (file_get_contents($file_path) == '') 
{ 
    // file is empty 
} 
1
foreach ($_FILES['ticket_files']['name'] as $key => $value) 
{ 
    if (count($_FILES['ticket_files']) > 0) 
    { 

    } 
} 

嘗試,而不是你現在有什麼這一點。

+0

這仍然在做同樣的事情 – charlie

0

您需要檢查文件的內容以確定它是否爲空。

foreach ($_FILES['ticket_files']['name'] as $key => $value) 
{ 
    if(!empty(file_get_contents($path . $_FILES['ticket_files']['name'])) 
    { 
     //Do Stuff 
    } 
} 
0

如果沒有上傳$ _FILES數組的樣子:

Array ([image] => Array ([name] => [type] => [tmp_name] => [error] => 4 [size] => 0)) 

錯誤代碼4 [錯誤] => 4表示沒有文件被上傳和錯誤代碼0表示沒有錯誤,文件已上傳。您可以添加下面的檢查而不是空的檢查。

if($_FILES['ticket_files']['error']==0) { 
    // file uploaded, process code here 
}