首页 > 代码库 > 文件上传

文件上传

<body>

<h1>上传文件</h1>
<form action="chuli.php" method="post" enctype="multipart/form-data">
请选择文件:<input type="file" name="file" /><input type="submit" value="http://www.mamicode.com/上传" />
</form>

</body>

<script type="text/javascript">
//input里面的type是个file的话,那就是个文件选择上传。
//enctype="multipart/form-data"的意思是规定了上传的这个表单的数据是个什么的数据类型。
</script>

</html>

 

 

 

 

第二个是php的处理页面:

<?php
//取文件信息
$arr =$_FILES["file"];

//加一些限制上传文件的条件来筛选将要上传到windows系统的文件
//1.文件类型
//2.文件大小
//3.保存的文件名不重复
if($arr["type"]=="image/jpeg" || $arr["type"]=="image/png" && $arr["size"]<1024000)
{
	//存放的临时文件的路径
	//$arr["tmp_name"];


	//上传的文件存放的位置
	
	//1.采用拼接用户名加时间戳的方法来防止上传的文件重复
	//2.类似网盘,使用各自单独的文件夹来防止上传文件的重复
	$filename = "./images/".$uid.time().$arr["name"];
	//加上$uid 和时间戳后 用户重复的几率就很低了。
	
	//保存之前判断下该文件是否存在
	if(file_exists($filename))
	{
		echo "该文件已存在";
	}
	else
	{
		//如果想上传带有中文名的文件图片什么的需要在这里前面加上一句话,转变下编码格式。
		//这里上传的编码格式是UTF-8的,而windows系统上的编码格式一般是国标的
		//所以在上传到windows系统上前需要钱改成国标的编码格式
		//转换编码格式(把$filename里面的UTF-8的编码格式转化为gb2312国标的编码格式)这样就可以上传中文的了
		$filename = iconv("UTF-8","gb2312",$filename);
		//所以以后想要往windows里面传文件的话需要先把UTF-8的编码格式改为国标的gb2312形式
		//移动临时文件到我们想让它上传的文件存放的位置
		//第一个参数是1.临时文件的路径 2.存放的路径
		
		move_uploaded_file($arr["tmp_name"],$filename);	
	}
}
else
{
	echo "上传的文件大小或类型不正确";
}

  

 

文件上传