文件上传后,为什么它总是给我假,即使它是图像?
if (!getimagesize($_FILES['imagefile']['tmp_name'])) { $boolean = false; }
顺便说一下,它给了我这个错误:
Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in...
答案 0 :(得分:1)
确保在对文件进行任何操作之前上传文件。只需在开发时转储$_FILES
数组,例如:
echo '<pre>'; print_r($_FILES);echo '</pre>';
您需要在enctype
标记上应用<form>
属性,才能上传文件。见http://www.w3.org/TR/html401/interact/forms.html#h-17.3
答案 1 :(得分:1)
首先检查上传是否实际成功:
if ($_FILES['imagefile']['error'] === UPLOAD_ERR_OK) {
if (!getimagesize(....)) {
...
}
} else {
die("Upload failed with error code {$_FILES['imagefile']['error']}");
}
错误常数为defined here。永远不要假设上传成功。他们只有一种方式可以工作,而且还有一百万种方式让他们失败。
鉴于getimagesize()
抱怨空文件名,可以:
一个。上传失败,其原因代码将在...['error']
属性中。
湾你正在检查错误的文件字段名称。如果您有<input type="file" name="image" />
,那么您必须检查$_FILES['image'][...]
。
℃。无论出于何种原因,您的Web服务器都能够将文件写入临时目录,但没有READ权限。