<form action="do.php" method = "post" enctype = "multipart/form-data">
<!-- <input type="hidden" name="MAX_FILE_SIZE" value="123456"> 限制文件大小 -->
<!-- <input type="file" name = "myfile" accept="image/jpeg,image/jpg,image/png,audio/flac"> 限制文件类型-->
<input type="file" name = "myfile">
<input type="submit" value="提交">
</form>
--------------------------------------------------------------------------------------------------------------------------------------------------------
<?php
/**接收$_FILES的文件信息 */
// print_r($_FILES);
$file = $_FILES['myfile'];
$maxsize = 209410520; //允许文件最大值 20M
$extall = array('bmp','jpg','png','tif','gif','pcx','tga','exif','fpx','svg','psd','cdr','pcd','dxf','raw','WMF','webp');
// $flag = true; /**检测是否是真是的文件类型 */
/**判断错误号 0或者UPLOAD_ERR_OK为成功 */
if($error==UPLOAD_ERR_OK)
{
if($file['error']>$maxsize){
exit("文件过大");
}
$ext = pathinfo($file['name'],PATHINFO_EXTENSION);
// print_r($ext);die;
if(!in_array($ext,$extall)){
exit("非法文件类型");
}
if(!is_uploaded_file($file['tmp_name'])){
exit("文件不是 HTTP POST 方式上传的");
}
$path = "uploads";
if(!file_exists($path)){
mkdir("uploads",0777,true);
chmod($path,0777);
}
/**检测是否是真是的图片类型 */
// if($flag){
if(!getimagesize($file['tmp_name'])){
exit('不是真实的图片类型');
}
// }
/**确保文件名字不重复 */
$uname = md5(uniqid(microtime(true),true)) .'.'. $ext;
$filePath = $path . '/' . $uname;
if(@move_uploaded_file($file['tmp_name'],$filePath)){
echo "文件 ".$file['name']." 上传成功";
}else{
echo "文件 ".$file['name']." 上传失败";
}
}else{
/**匹配错误信息 */
switch($file['error']){
case 1;
echo "上唇文件超过PHP配置文件中 upload_max_filesize 的选项值";
break;
case 2;
echo "超过表单max_file_size的限制大小";
break;
case 3;
echo "文件部分被上传";
break;
case 4;
echo "没有选择上传文件";
break;
case 6;
echo "没有找到临时目录";
break;
}
}