慕粉4027178
2016-08-26 20:18
<?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;
}
}
if(in_array($ext, $allowExt)){
exit('非法文件类型');
}
代码错误,你表示的是如果扩展名在你给定的数组就退出执行并且打印 ‘非法文件类型’。应该是
if(!in_array($ext, $allowExt)){
exit('非法文件类型');
}
表示不在给定的数组退出并且打印
PHP实现文件上传与下载
43735 学习 · 328 问题
相似问题