php中的空函数无法正常工作

php中的空函数无法正常工作,php,Php,您好,由于某种原因,我无法让我的程序查看我的文件是否为空。如果选择了某个内容,它不应该通过,但它是空的。这是密码 if (empty($_FILES['file'] ) ) { echo "testing"; $seterror =1; returnBack(); } 如果输出文件数组,会得到什么?(即,打印($\u文件);) 您的代码不会告诉您名为file的文件的内容是否为空,它会告诉您$\u FILES['file']的值

您好,由于某种原因,我无法让我的程序查看我的文件是否为空。如果选择了某个内容,它不应该通过,但它是空的。这是密码

if (empty($_FILES['file'] ) )
    {
        echo "testing";
        $seterror =1;
        returnBack();

    } 

如果输出文件数组,会得到什么?(即,
打印($\u文件);

您的代码不会告诉您名为
file
的文件的内容是否为空,它会告诉您
$\u FILES['file']
的值是否为空,这可能不是您想要的。您可能也不希望
的逻辑为空
-您是否尝试过此方法以查看是否存在差异

if (array_key_exists('file', $_FILES)) {
    ...
}

如果输出文件数组,会得到什么?(即,
打印($\u文件);

您的代码不会告诉您名为
file
的文件的内容是否为空,它会告诉您
$\u FILES['file']
的值是否为空,这可能不是您想要的。您可能也不希望
的逻辑为空
-您是否尝试过此方法以查看是否存在差异

if (array_key_exists('file', $_FILES)) {
    ...
}

如果您正在测试空文件,下面是代码

$file = 'test.txt';

if(filesize($file) == NULL) {
    echo "empty"; 
}

如果您正在测试空文件,下面是代码

$file = 'test.txt';

if(filesize($file) == NULL) {
    echo "empty"; 
}

我想你可以试试这个

if(empty($_FILES['file']['name']))
{
    // not uploaded
}
else
{
    // uploded
}

我想你可以试试这个

if(empty($_FILES['file']['name']))
{
    // not uploaded
}
else
{
    // uploded
}
从您在注释中提供的var_dump($_文件)来看,它似乎没有响应“测试”(即,它不工作),因为$_文件['FILE']不是空的

根据你提供给我的:

$\u FILES['file']=array(5){[“name”]=>string(0)”“[“type”]=>string(0)”“[“tmp\u name”]=>string(0)”“[“error”]=>int(4)[“size”]=>int(0)}

我不完全确定empty()如何处理数组(只是说对于空数组它将返回true),但至少您需要清除$\u文件['file']['error'](它不是空的,因为它是int(4)),或者使用empty()检查类似$\u文件['file']['name']

因此,根据我的建议,下面是代码的外观:

if (empty($_FILES['file']['name'])) {
    echo "testing";
    $seterror = 1;
    returnBack();    
}
或者(因为我对PHP数组的理解可能有问题),请尝试以下方法:

if(empty($_FILES['file']['name'])) {
    echo "testing";
    $seterror = 1;
    returnBack();
}
从您在注释中提供的var_dump($_文件)来看,它似乎没有响应“测试”(即,它不工作),因为$_文件['FILE']不是空的

根据你提供给我的:

$\u FILES['file']=array(5){[“name”]=>string(0)”“[“type”]=>string(0)”“[“tmp\u name”]=>string(0)”“[“error”]=>int(4)[“size”]=>int(0)}

我不完全确定empty()如何处理数组(只是说对于空数组它将返回true),但至少您需要清除$\u文件['file']['error'](它不是空的,因为它是int(4)),或者使用empty()检查类似$\u文件['file']['name']

因此,根据我的建议,下面是代码的外观:

if (empty($_FILES['file']['name'])) {
    echo "testing";
    $seterror = 1;
    returnBack();    
}
或者(因为我对PHP数组的理解可能有问题),请尝试以下方法:

if(empty($_FILES['file']['name'])) {
    echo "testing";
    $seterror = 1;
    returnBack();
}

PHP中的语言结构
empty()
和数组不能很好地混合。此外,如果您的表单中有一个
,您将得到一个
$\u FILES[]
数组。如果(!array_key_存在('file',$_FILES)){//no file uploaded}首先,您应该执行

事实上,您应该进行几项检查:

  • 如果
    文件
    元素填充在
    $\u文件中

  • 如果没有错误(即,
    $\u文件['file']['error']
    ==0)
  • 如果上传文件的临时位置有文件名
  • 如果PHP认为它是上传的文件,并且/或者它可以移动它
只有所有这些都是真的,您才会有一个文件要处理。否则你不会


我发现在文件上传处理程序上严格遵循这些步骤是完全可靠的。

PHP中的语言结构
empty()
和数组不能很好地混合。此外,如果您的表单中有一个
,您将得到一个
$\u FILES[]
数组。如果(!array_key_存在('file',$_FILES)){//no file uploaded}
首先,您应该执行

事实上,您应该进行几项检查:

  • 如果
    文件
    元素填充在
    $\u文件中

  • 如果没有错误(即,
    $\u文件['file']['error']
    ==0)
  • 如果上传文件的临时位置有文件名
  • 如果PHP认为它是上传的文件,并且/或者它可以移动它
只有所有这些都是真的,您才会有一个文件要处理。否则你不会


我发现在文件上传处理程序上严格遵循这些步骤是完全可靠的。

好的,所以我要做的是检查它是否出错——如果出错,它将不会通过,因为这意味着它是空的

代码:


非常感谢你们的帮助

好吧,那么我要做的就是检查它是否出错——如果出错,它就不会通过,因为这意味着它是空的

代码:


非常感谢你们的帮助

包括
var\u dump($\u文件)
print\r($\u文件)
供您查看或在我的程序中?到底是什么不起作用?尝试使用“var_dump($_FILES);”和“echo$_FILES['file'];”,以确保它符合您的期望。我不会检查整个数组,但文件名是正确的,但什么不起作用?你有什么问题吗?它是否与$\u文件数组重复“测试”?包括
var\u dump($\u文件)
print\r($\u文件)
供您查看或在我的程序中?到底是什么不起作用?尝试使用“var_dump($_FILES);”和“echo$_FILES['file'];”,以确保它符合您的期望。我不会检查整个数组,但文件名是正确的,但什么不起作用?你有什么问题吗?如果可以,但即使我没有输入文件,它仍然会通过。如果可以,但即使我没有输入文件,它仍然会通过。如果可以,但即使我没有输入文件,它仍然会通过。有效,除非它确实有一个文件,它仍然会通过。有效,除非它确实有一个文件,它仍然会通过。有效,除非它确实有一个文件,它仍然会通过