2013-10-29 54 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 
}