2 回答
红颜未知己
TA贡献16条经验 获得超2个赞
ok
<html> <head></head> <body> <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="myfile">上传文件<br /> <input type="submit" value="提交"> </form> </body> </html> <?php //上传文件思路 //通过$_FILES['name值']来接收文件参数 //取出文件临时文件名 tmp_name //取出文件后缀 pathinfo(文件名,PATHINFO_EXTENSION); //创建文件保存的目录 // 1 检查目录是否存在 file_exists(目录名) // 2如果没有则创建 mkdir(目录名) chmod()改变文件模式 //组合要保存的文件名(包括路径) // 1采用MD5加密当前时间戳time().'/'.文件后缀名; // 2直接用文件名保存 //移动文件到指定目录下 move_uploaded_file(移动的文件名,要保存的名字) // header('content-type:text/html;charset=utf-8'); $fileInfo=$_FILES['myfile']; $maxSize=2097152;//允许的最大值 $allowExt=array('jpeg','jpg','png','gif','wbmp'); $flag=true;//检测是否为真实图片类型 //1.判断错误号 if($fileInfo['error']==0){ //判断上传文件的大小 if($fileInfo['size']>$maxSize){ exit('上传文件过大'); } //$ext=strtolower(end(explode('.',$fileInfo['name']))); $ext=pathinfo($fileInfo['name'],PATHINFO_EXTENSION); if(!in_array($ext,$allowExt)){ exit('非法文件类型'); } //判断文件是否是通过HTTP POST方式上传来的 if(!is_uploaded_file($fileInfo['tmp_name'])){ exit('文件不是通过HTTP POST方式上传来的'); } //检测是否为真实的图片类型 if($flag){ if(!getimagesize($fileInfo['tmp_name'])){ exit('不是真正图片类型'); } } $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($fileInfo['tmp_name'],$destination)){ echo '文件上传成功'; }else{ echo '文件上传失败'; } }else{ //匹配错误信息 switch($fileInfo['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; case 7: case 8: echo '系统错误'; break; } }
- 2 回答
- 1 关注
- 1474 浏览
添加回答
举报
0/150
提交
取消