Welcome

首页 / 网页编程 / PHP / PHP入门教程之上传文件实例详解

本文实例讲述了PHP上传文件的方法。分享给大家供大家参考,具体如下:
Demo1.php
<form enctype="multipart/form-data" action="Demo2.php" method="post"><input type="hidden" name="MAX_FILE_SIZE" value="2000000" />上传文件: <input type="file" name="userfile" /><input type="submit" value="上传" /></form>
Demo2.php
<?php//接受上传文件//$_FILES;//存在,但是空值//[userfile][name] 表示上传的文件名//[userfile][type] 表示文件类型:例如,jpg 的文件类型为:image/jpeg//[userfile][tmp_name]表示上传的文件临时存放的位置 C:WINDOWS	empphp28.tmp//[userfile][error]表示错误类型,表示没有任何错误。//[userfile][size]表示上传文件的大小print_r($_FILES);echo "<br/>";//is_uploaded_file -- 判断文件是否是通过 HTTP POST 上传的//通过 HTTP POST 上传后,文件会存放在临时文件夹下$fileMimes = array("image/jpeg","image/pjpeg","image/gif","image/png","image/x-png");//判断类型是否是数组里的一种if(is_array($fileMimes)){if(!in_array($_FILES["userfile"]["type"],$fileMimes)){echo "<script>alert("本站只允许 jpg,png,gif 图片");history.back();</script>";exit;}}//创建一个常量define("URL",dirname(__FILE__)."uploads");echo URL;//判断目录是否存在if(!is_dir(URL)){mkdir(URL,0777); //最大权限0777,意思是如果没有这个目录,那么就创建}define("MAX_SIZE",2000000);if($_FILES["userfile"]["size"] > MAX_SIZE){echo "<script>alert("上传不得超过 2 M");history.back();</script>";exit;}//还有两个问题要验证//第二个问题,只允许 JPG 文件// if($_FILES["userfile"]["type"] != "image/jpeg" && $_FILES["userfile"]["type"] != "image/pjpeg"){// echo "<script>alert("本站只允许 JPG 图片");history.back();</script>";// exit ;// }// switch ($_FILES["userfile"]["type"]){// case "image/jpeg"://火狐// break;// case "image/pjpeg":// break;// case "image/gif":// break;// case "image/png"://火狐// break;// case "image/x-png"://IE// break;// default: echo "<script>alert("本站只允许 jpg,png,gif 图片");history.back();</script>";// exit ;// }//第一个问题,如果上传错误,怎么办if($_FILES["userfile"]["error"]>0){switch ($_FILES["userfile"]["error"]){case 1:echo "<script>alert("上传文件超过约定值1");history.back();</script>";break;case 2:echo "<script>alert("上传文件超过约定值2");history.back();</script>";break;case 3:echo "<script>alert("部分被上传");history.back();</script>";break;case 4:echo "<script>alert("没有被上传");history.back();</script>";break;}exit;}if(is_uploaded_file($_FILES["userfile"]["tmp_name"])){//就在这里移动了//move_uploaded_file -- 将上传的文件移动到新位置//第一个参数,写上临时文件的地址,//第二个参数,第二个参数要写上你要存在的地址//先去判断这个目录是否存在//如果想屏蔽掉警告,直接加上 @if(!move_uploaded_file($_FILES["userfile"]["tmp_name"],URL."/".$_FILES["userfile"]["name"])){//如果移动失败,就失败echo "移动失败";exit;}}else{echo "<script>alert("临时文件夹找不到上传的文件");history.back();</script>";exit;}//全部通过就上传成功了//必须传一个值给Demo3.php//文件上传的地址echo "<script>alert("文件上传成功");location.href="Demo3.php?url=".$_FILES["userfile"]["name"]."";</script>";?>
Demo3.php
<?php$url = $_GET["url"];echo "<img src="uploads/".$url.""/>";?>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。