我问过这个问题并发现PHP配置限制了我上传到2MB,所以我把它修复为3MB。但是,我现在有另一个问题:我也在检查图像尺寸,如果图像看起来超过3MB则失败,抛出以下错误。那么我怎么能自己停止错误并检查大小而不是PHP配置?
警告:getimagesize():文件名不能为空
以下是代码:
$size = $_FILES['image']['size'];
list($width, $height) = getimagesize($_FILES['image']['tmp_name']);
$minh = 400;
$minw = 600;
$one_MB = 1024*1024; //1MB
if($size > ($one_MB*3))// this is not checking the size at all, the last echo is what I get if I try to upload over 3mb.
{
echo"File exceeds 3MB";
}
elseif ($width < $minw ) {
echo "Image width shouldn't be less than 600px";
}
elseif ($height < $minh){
echo "Image height shouldn't be less than 400px";
}
else{
if (move_uploaded_file($_FILES['image']['tmp_name'], $new_location)){
//do something
}
else{
echo "Image is too big, try uploading below 3MB";
}
}
答案 0 :(得分:0)
在某些时候看起来上传出错了。尝试在getimagesize()之前添加一些错误处理:
if (!file_exists($_FILES['image']['tmp_name'])) {
echo "File upload failed. ";
if (isset($_FILES['upfile']['error'])) {
echo "Error code: ".$_FILES['upfile']['error'];
}
exit;
}
很难说它失败的原因,因为涉及很多参数。错误代码可能会给你一个提示。
否则也许可以在这里开始阅读:http://de2.php.net/manual/en/features.file-upload.php
答案 1 :(得分:0)
我也遇到了同样的错误,请转到php.ini并转到第800行&#34; upload_max_filesize&#34;。 选择你的最大上传文件大小,我将我的设置为4M,在我的实际网站代码中我不允许3mb后的任何内容。 由于某种原因,使它们都具有相同的大小不起作用,PHP.ini需要至少比您允许上传的大1mb。