如何检查php中是否设置了$\u文件?

如何检查php中是否设置了$\u文件?,php,file,Php,File,我创建了一个包含3个 我看到我得到了一个带有数组(name=>“”)的数组 所以我检查是否($_FILE[“myfilename”][“name”]==”) 这是可行的,但对我来说似乎很不寻常 我想知道是否有更好的方法来检查是否设置了文件输入?有:。在处理上传的文件时,出于安全原因,您应该始终使用它(以及它的近亲)。您可以使用它来检查变量是否为空,但Pekka的解决方案最好采用这种方式 if (empty($_FILES["myfilename"]["name"])) 如果您正在检查是否设置了

我创建了一个包含3个

我看到我得到了一个带有
数组(name=>“”)
的数组

所以我检查
是否($_FILE[“myfilename”][“name”]==”)

这是可行的,但对我来说似乎很不寻常

我想知道是否有更好的方法来检查是否设置了文件输入?

有:。在处理上传的文件时,出于安全原因,您应该始终使用它(以及它的近亲)。

您可以使用它来检查变量是否为空,但Pekka的解决方案最好采用这种方式

if (empty($_FILES["myfilename"]["name"]))

如果您正在检查是否设置了变量,则可以使用函数

如果您使用的是最新的PHP(4.2+),那么最好的方法是检查:

$_FILE['myfilename']['error'] === UPLOAD_ERR_OK
如果上传成功,您可以看到其他可能值的列表,请尝试以下操作:

if($_FILES["uploadImg"]['name'][0] != ''){
    //echo 'file attached';
}else{
    //echo 'no file attached';
}
这对我很有用…

你可以试试这个:

if($_FILES['myfilename']['size'] > 0 ) {

}
else{
       echo 'File is not uploaded . . .';
}

我对
的有用性感到困惑,因为它是上传的文件。在PHP源代码中似乎存在一个辅助哈希。但是这些值始终与
$\u文件[*]['tmp\u name']
中的值相同。它不检查其他任何东西。不确定如何在脚本运行时将某些内容注入$\u文件。(
Is_upload_file
如果使用
move_upload_file
,将是多余的,因为它包含了复制粘贴的完全相同的测试。)@mario在PHP4中曾经有一个漏洞,我曾经设法破解过一个朋友的phpBB:可以插入本地文件路径(想想
。/config.PHP
)进入
tmp\u name
,将该文件复制到公共
uploads/
目录或任何地方
已上载\u file()
就是为了响应这一点而引入的。如果您不使用
的话,该漏洞是否仍然存在是\u uploaded\u file()
,我不知道,我从测试开始就没有检查过。那都是你的错?被否决的黑客..;}我对文件上传的概念还很陌生。所以,如果我做对了,当我按下表单上的上传按钮时,服务器已经上传了文件,因此是上传的文件。如果是上传的文件($\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;前者不是:当你点击上传按钮时上传开始。PHP脚本在所有文件完全上传后开始生效
是上传的文件()
只是检查
文件的一种奇特(如上所述,增强了安全性)方法。您应该使用严格的相等比较
==
。如果你要在ERR_OK常量上输入一个类型,那么常规比较会给出一个假“OK”。这是一个很好的结论,特别是它的值是(int)0。