注意:服务器中php.ini文件特征属性
我们需要手动在服务器端的
php.ini
中设置对表单传递的数据进一步判断
file_uploads
= On /Off
是否允许文件上传
upload_max_filesize
= 2M
上传的文件的最大大小
post_max_size
= 8M
POST
数据所允许的最大大小
表单传递的数据,文件只是其中的一部分,所以设置时,
upload_max_filesize
应该小于
post_max_size。
PHP实现文件上传说明:
1.html中编写表单。
2.php服务器端脚本。
1.上传文件.html实现
<form method="post" action="serverUpLoads.php" enctype="multipart/form-data"> <!--enctype="multipart/form-data"这样服务器就会知道,我们要传递一个文件,<!--这样服务器可以知道上载的文件带有常规的表单信息。--><!--表单默认使用application/x-www-form-urlencoded来提交数据。-->
<input type="file" name="file"/>
<input type="submit" value="上传"/><!--服务器端的$_FILES[][]的第一个中括号值要与类型为file的name="file"的值保持一致--></form>
2.serverUpLoads.php服务器端脚本
header("Content-type:text/html;charset=utf-8"); //允许上传的文件后缀类型 $allowExts = array("gif", "jpeg", "jpg", "png"); //文件的名称 //echo "文件的全名称:" . $_FILES["file"]["name"] . "<br>"; //取出文件名和后缀名 $temp = explode(".", $_FILES["file"]["name"]); 分离出来的文件名,后缀名以数组形式存储 //print_r($temp); Array ( [0] => html5_新媒体娱乐 [1] => css ) 文件名 //echo "<br>文件名:" . $temp[0] . "<br>"; 后缀名 //echo "后缀名:" . $temp[1] . "<br>"; 得到文件后缀名 echo "后缀名:" . end($temp) . "<br>"; // 文件类型(会辨别上传文件格式的真实格式,编程语言规定的一定的格式, 例如:上传css类型的文件,$_FILES["file"]["type"]就会显示编程辨认的为text/css的全称) //echo "文件类型:" . $_FILES["file"]["type"]; if (($_FILES["file"]["type"] == "image/gif" || $_FILES["file"]["type"] == "image/jpeg" || $_FILES["file"]["type"] == "image/jpg" || $_FILES["file"]["type"] == "image/png") && (in_array(end($temp), $allowExts)) && $_FILES["file"]["size"] < (1024 * 1024)) { if ($_FILES["file"]["error"]) { echo "报错:" . $_FILES["file"]["error"]; } else { if (!is_dir("uploadFiles/")) { mkdir("uploadFiles/"); } if (file_exists("uploadFiles/" . $_FILES["file"]["name"])) { echo "文件已存在"; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "uploadFiles/" . $_FILES["file"]["name"]); echo "文件已上传"; } } } //else { //echo "不在规定范围之内中的一种或都有:1.文件类型是否图片的(image/*.) //2.是否在规定类型之内后缀 //3.文件大小"; //}
补充:
1.上传后做的处理:
move_uploaded_file($_FILES["file"]["tmp_name"], "uploadFiles/" . $_FILES["file"]["name"]);
move_uploaded_file(临时路径/临时文件名,目的路径/目的文件名)函数将存放在临时目录下的上传文件拷贝出来,存放到指定目录的指定文件名,如果目标存在将会被覆盖。
Ø
上传的文件被放置到服务器端临时目录:
/
tmp
目录里面命名为一个唯一的,随机生成的临时文件名(
注:该文件在程序执行完后将自动被删除掉。在删除前可以像本地文件一样操作。
$_FILES["file"]["tmp_name"]//随机生成的临时文件名)。
注:该文件在程序执行完后将自动被删除掉。在删除前可以像本地文件一样操作。
Ø
/
tmp
目录是默认的上传临时文件存放地点,
如果需要更改这个目录:可以编辑 php.ini 文件 File Uploads 段的 upload_tmp_dir 属性值。
如果需要更改这个目录:可以编辑 php.ini 文件 File Uploads 段的 upload_tmp_dir 属性值。
下边链接为超级全局数组$_FILES的详细讲解。
http://blog.csdn.net/u013005050/article/details/51945397