Php 为什么';如果(!getimagesize($#u FILES[';imagefile';][';tmp#u name';])&;不';不行?

Php 为什么';如果(!getimagesize($#u FILES[';imagefile';][';tmp#u name';])&;不';不行?,php,Php,文件上传后,为什么即使是图像也总是给我假消息? if (!getimagesize($_FILES['imagefile']['tmp_name'])) { $boolean = false; } 顺便说一下,它给了我一个错误: 警告:getimagesize()[function.getimagesize]:文件名不能为空。在对文件执行任何操作之前,请确保已上载文件。开发时只需转储$\u文件数组,如: echo '<pre>'; print_r($_FILES);echo '&l

文件上传后,为什么即使是图像也总是给我假消息?

if (!getimagesize($_FILES['imagefile']['tmp_name'])) { $boolean = false; }
顺便说一下,它给了我一个错误:

警告:getimagesize()[function.getimagesize]:文件名不能为空。

在对文件执行任何操作之前,请确保已上载文件。开发时只需转储
$\u文件
数组,如:

echo '<pre>'; print_r($_FILES);echo '</pre>';  
echo';打印(美元文件);回声';

您需要在
标签上应用
enctype
属性,以便上传文件。请参见

首先检查上传是否成功:

错误常量为。永远不要假设上传成功。他们只有一种方法可以工作,还有无数种方法可以失败

如果
getimagesize()
抱怨文件名为空,则:

a。上载失败,原因代码将位于
..['error']
属性中

b。您正在检查错误的文件字段名。如果您有
,则必须检查
$\u文件['image'][…]


c。无论出于何种原因,您的web服务器都可以将文件写入临时目录,但没有读取权限。

您确定没有上载错误吗?另外,您能提供更多的代码吗?警告明确表示没有标记为“imagefile”的文件进入服务器。是的,那么该怎么办
$\u FILES[“file”][“tmp\u name”]
不是空的,太奇怪了。。。我很快就会向某人开枪……在你的问题中:
$\u文件['imagefile']['tmp\u name']
在你的评论中:
$\u文件['file]['tmp\u name']
。我会打印($文件);看看上面写了什么。Jayrox,你应该把这个贴在答案里,因为它对我帮助最大,谢谢。我已经添加了
enctype=“multipart/form data”
[tmp\u name]=>C:\xampp\tmp\phpA3D5.tmp
,但我猜这是一条糟糕的路径?但,若我并没有添加if子句,那个么它可以完美地上传图像。Omg://@hey:是的,可能是本地服务器和在线服务器的上传设置不同。
if ($_FILES['imagefile']['error'] === UPLOAD_ERR_OK) {
   if (!getimagesize(....)) {
      ... 
   }
} else {
   die("Upload failed with error code {$_FILES['imagefile']['error']}");
}