上载文件时,php中出现0错误
我正在用PHP上传一个图像。图像是.jpg类型,但当上传它时,它给了我错误0 这是我的密码上载文件时,php中出现0错误,php,image,file-upload,Php,Image,File Upload,我正在用PHP上传一个图像。图像是.jpg类型,但当上传它时,它给了我错误0 这是我的密码 if(isset($_FILES["image_file"]["name"])){ $allowedExts = array("gif", "jpeg", "jpg", "png"); $extension = end(explode(".", $_FILES["image_file"]["name"])); if ((($_FILES["image_file"]["type"]
if(isset($_FILES["image_file"]["name"])){
$allowedExts = array("gif", "jpeg", "jpg", "png");
$extension = end(explode(".", $_FILES["image_file"]["name"]));
if ((($_FILES["image_file"]["type"] == "image/gif")
|| ($_FILES["image_file"]["type"] == "image/jpeg")
|| ($_FILES["image_file"]["type"] == "image/jpg")
|| ($_FILES["image_file"]["type"] == "image/pjpeg")
|| ($_FILES["image_file"]["type"] == "image/x-png")
|| ($_FILES["image_file"]["type"] == "image/png"))
//&& ($_FILES["image_file"]["size"] < $size)
&& in_array($extension, $allowedExts))
{
if ($_FILES["image_file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["image_file"]["error"] . "<br>";
}
else
{
$generate_random_number = rand(1,1000);
$random_image_name = $generate_random_number.$_FILES["image_file"]["name"];
if (file_exists($upload_dir_path.$random_image_name))
{
//echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["image_file"]["tmp_name"],
$upload_dir_path.$random_image_name);
}
}
}
else
{print_r($_FILES);
echo "Invalid file";
}
}
if(isset($\u文件[“图像\u文件”][“名称”])){
$allowedExts=数组(“gif”、“jpeg”、“jpg”、“png”);
$extension=end(分解(“.”,$文件[“图像文件”][“名称]));
如果(($_文件[“图像文件”][“类型”]=“图像/gif”)
||($_文件[“图像文件”][“类型”]=“图像/jpeg”)
||($_文件[“图像文件”][“类型”]=“图像/jpg”)
||($_文件[“图像_文件”][“类型”]==“图像/pjpeg”)
||($_文件[“图像文件”][“类型”]=“图像/x-png”)
||($_文件[“图像文件”][“类型”]=“图像/png”))
//&&($_文件[“图像_文件”][“大小”]<$size)
&&in_数组($extension$allowedExts))
{
如果($_文件[“图像_文件”][“错误”]>0)
{
回显“返回代码:”.$\u文件[“图像\u文件”][“错误”]。“
”;
}
其他的
{
$generate_random_number=rand(11000);
$random_image_name=$generate_random_number.$_FILES[“image_file”][“name”];
如果(文件存在($upload\U dir\U path.$random\U image\U name))
{
//echo$\u文件[“文件”][“名称”]。“已存在。”;
}
其他的
{
移动上传的文件($文件[“图像文件”][“tmp文件名”],
$upload\U dir\U path.$random\U image\U name);
}
}
}
其他的
{print_r($_文件);
回显“无效文件”;
}
}
运行时,输出如下所示:
Array([image\u file]=>Array([name]=>Chambers\u block\u study.JPG[type]=>image/jpeg[tmp\u name]=>/tmp/phpghmfM2[error]=>0[size]=>2656165))
无效文件
请帮忙,谢谢 所以一切都会好起来的。如果您遇到问题,这不是由文件上载本身引起的
旁注:要检测JPG图像,最好使用而不是检查扩展名/MIME类型。这些是客户设置的,可以伪造
例如:
$info = getimagesize($_FILES["image_file"]["tmp_name"]);
if ($info == false)
{
echo "Image is not a valid image file";
// do whatever
}
可能是因为它区分大小写:数组中有
jpg
,但文件以jpg
试一试
直接从以下位置开始:
这意味着您的文件已正确上载
如果用户上载扩展名为.JPG的文件,If语句将失败。因此,我宁愿使用这样的方法来检查图像扩展:
$image_ext = strtolower(pathinfo($_FILES["image_file"]["name"],PATHINFO_EXTENSION));
此外,它最好用于检查图像的有效性。您可以按如下方式使用它:
$isImageValid = @getimagesize($image_tmp);
if($isImageValid){
//do whatever
}
希望这有帮助 看起来不错,不是吗?错误0=无错误。您期望的是什么?如果你的文件上传时没有任何错误,这不是很酷吗?我认为Ravi希望在出现错误时输出,但看起来条件不正确,所以在一切正常时输出。@Rikesh文件没有上传。你怎么知道,会发生什么?tmp目录中显然有一个文件,它有一个大小。主要的问题不是检查类型。错误即将出现,因此文件无法上载。我收到了错误。错误区分大小写。我在jpg中使用了数组,而文件是jpg,所以错误来了。Thanks@Ravi好的,但正如所说的,这不是一个很好的方法来检查它是否是一个图像。
$image_ext = strtolower(pathinfo($_FILES["image_file"]["name"],PATHINFO_EXTENSION));
$isImageValid = @getimagesize($image_tmp);
if($isImageValid){
//do whatever
}