php不能上传jpg格式文件格式,为什么我传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;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值