为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我传jpg格式图片,显示说是非法文件类型

<?php

header('content-type:text/html;charset=gbk');

$fileTnfo=$_FILES['myFile'];

$maxSize=2097152;

$allowExt=array('jpeg','jpg','png','gif','wbmp');

//判断错误号

if($fileTnfo['error']==0){

//判断上传文件的大小

if($fileTnfo['size']>$maxSize){

exit('上传文件过大');

}

$ext=pathinfo($fileTnfo['name'],PATHINFO_EXTENSION);

if(in_array($ext, $allowExt)){

exit('非法文件类型');

}

//判断文件是否是通过HTTP POST方式上传来的

if(!is_uploaded_file($fileTnfo['tmp_name'])){

exit('文件不是通过HTTP POST方式上传来的');

}

//检测是否为真实的图片

$path='uploads';

if(!file_exists($path)){

mkdir($path,0777,true);

chmod($path, 0777);

}

//确保文件名唯一,防止重名产生覆盖

$uniName=md5(uniqid(microtime(true),true)).'.'.$ext;

//echo $uniName;exit;

$destination=$path.'/'.$uniName;

if(@move_uploaded_file($fileTnfo['tmp_name'], $destination)){

echo'文件上传成功';

}else{

echo'文件上传失败';

}

}else{

//匹配错误信息

switch($error){

case 1:

echo '上传文件超过了PHP配置文件中的upload_max_filesize选项的值';

break;

case 2 :

echo '超过了表单MAX_FILES_SIZE限制的大小';

break;

case 3:

echo '文件被部分上传';

break;

case 4:

echo '没有选择上传文件';

break;

case 6:

echo '没有找到临时目录';

break;

case 7:

case 8:

echo '系统错误';

break;


}

}


正在回答

1 回答

if(in_array($ext, $allowExt)){

exit('非法文件类型');

}

代码错误,你表示的是如果扩展名在你给定的数组就退出执行并且打印 ‘非法文件类型’。应该是

if(!in_array($ext, $allowExt)){

exit('非法文件类型');

}

表示不在给定的数组退出并且打印 


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我传jpg格式图片,显示说是非法文件类型

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信