文件上传


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <form action="shangchuan.php" method="post" enctype="multipart/form-data"><!--文件传输必须加 enctype 属性 传输数据不用--> <input type="file" name="file"/> <input type="submit" value="上传" /> </form> </body> </html>

 运行如图:

 

 

 

输出 $_FILES["file"]




<?php
 //var_dump ($_FILES["file"]);//1、用户在上传文件时是否按规则来 加控制
  
 //1、控制上传文件的类型 
 //2、控制上传文件的大小
 //3、防止文件名重复
     //1、修改保存的文件名
	 	//加用户名 + 时间戳 + 随机数 + 文件名  最常用
		//流水号 做法稍显复杂 在数据库中使用 用的很少
	//2、 使用文件夹
		//public/lch/2017-2-12/1.jpg 
		
//4、 保存文件


//判断上传是否出错
 if(($_FILES["file"]["error"]))
 {
	 echo $_FILES["file"]["error"];
 }
 else
 {
	 //控制上传文件的类型、大小
	 
	 if(($_FILES["file"]["type"]=="image/jpeg"|| $_FILES["file"]["type"]=="image/png") && $_FILES["file"]["size"]<1024000)
	 {
		 //找到文件存放位置
		 $filename = "./file/".date("YmdHis").$_FILES["file"]["name"];//加时间戳
		 //转换编码格式
		$filename = iconv("UTF-8","gb2312",$filename);
		 
		 //判断文件是否存在
		 if(file_exists($filename) )
		 {
			 echo "该文件已存在!";
		 }
		 else
		 {
			 //保存文件
			 move_uploaded_file($_FILES["file"]["tmp_name"],$filename);
			 
		 }
		 
		 
	 }

		 else
		 {
			 echo "文件类型不正确";
		 }
 }

   若图片名称为汉字:

               

 使用转换编码格式
		$filename = iconv("UTF-8","gb2312",$filename);

若不是使用 iconv 图片文字 因为与编码格式不同 呈现乱码



 move_uploaded_file($_FILES["file"]["tmp_name"],$filename);

move_uploaded_file() 函数将上传的文件移动到新位置。


若成功,则返回 true,否则返回 false。


 
posted @ 2017-01-17 16:31  心若微漪  阅读(124)  评论(0编辑  收藏  举报