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'];”,以确保它符合您的期望。我不会检查整个数组,但文件名是正确的,但什么不起作用?你有什么问题吗?如果可以,但即使我没有输入文件,它仍然会通过。如果可以,但即使我没有输入文件,它仍然会通过。如果可以,但即使我没有输入文件,它仍然会通过。有效,除非它确实有一个文件,它仍然会通过。有效,除非它确实有一个文件,它仍然会通过。有效,除非它确实有一个文件,它仍然会通过