PHP学习实例—3(文件的上传与下载)

主页index.php

<span style="font-size:14px;"><!DOCTYPE HTML>
<html>
<head>
	<title>图片操作</title>
<style>
  #contains {
	  width: 500px; 
		margin: 0 auto;
		text-align: center;
		color: #0F0;
	}
	th {
	  background: #ccc;
	}
	td {
	  width: 150px;
		height: 50px;
		text-align: center;
	}
</style>
</head>

<body>
  <div id="contains">
    <h2>图片上传和下载</h2>
		<!----------------文件上传表单------------->
		  <form action="doupload.php" method="post" enctype="multipart/form-data">
			  <input type="hidden" value="10000000" /> <!---避免上传后发现文件过大--->
			  <input type="file" name="pic"/>
				<input type="submit" value="上传"/>
			</form>
		<!--------------------------------------->
  	<table width="500" border="0">
		  <tr>
			  <th>序号</th><th>图片</th><th>添加时间</th><th>操作</th>
			</tr>
			<?php
			  //1.打开目录
				$dir = opendir("./imgs");
				//2.遍历目录
				$i = 0;
				$color = "#ff0";
				while ($f = readdir($dir)){ //$f代表这每个文件的名字
	        if ($f == '.' || $f == "..") continue; //处理特殊隐藏的文件
					$i++;
					if ($i % 2 == 0) $color = "#ccc";
					else $color = "#ffa";
				  echo "<tr bgcolor=$color>";
					  echo "<td>{$i}</td>";
						echo "<td><img src='./imgs/{$f}' width='150' height='50'/></td>";
						echo "<td>".date("Y-m-d", filectime('./imgs/'.$f))."</td>";
						echo "<td><a href='./imgs/{$f}'>查看</a>
						          <a href='download.php?name={$f}'>下载</a></td>";
					echo "</tr>";
				//	echo $f." ";
				}
			?>
    </table>
  </div>
</body>
</html></span><span style="font-size:18px;">
</span>
上传doupload.php

<?php
 /* echo "<pre>";
  var_dump($_FILES);
	echo "</pre>";*/
  //1.获取上传文件信息
		$upfile = $_FILES["pic"]; 
		$path = "./imgs/";
	//2、过滤错误信息
		if ($upfile["error"] > 0) {
		  die("上传文件错误");
		}
	//3、本次上传文件的大小过滤 
		if ($upfile["size"] > 10000000) {
		  die("上传文件超出限制");
		}
	//4、处理文件类型
		$typelist = array("jpeg","jpg","png","gif");
		$arr = explode(".", basename($upfile['name'])); //以'.'分割字符串为数组
		$bz = array_pop($arr); //获取文件的后缀名
		if (!in_array($bz, $typelist)) { //如果给定的值 value 存在于数组 array 中则返回 true
		  die("上传文件类型非法!".$upfile["type"]);
		}
	//5、设置相同文件的名字不同
	  $newfile = date("YmdHis").rand(100, 999).".".$bz;
	//
	if (is_uploaded_file($upfile["tmp_name"])) { //判断文件是否是通过post上传
	  //执行文件上传
		  if (move_uploaded_file($upfile["tmp_name"], $path.$newfile)) {//将上传的文件保存在新位置
			  echo "上传成功!";
				echo "<a href='index.php'>浏览</a>";
			}else {
			  die("上传失败");
			}
	}
?>

下载download.php

<?php

  //1.获取于要下载的文件名
	  $file = "./imgs/".$_GET["name"];
//		echo $file;
	//2.重设响应类型
		$info = getimagesize($file); //获取文件大小
	//  var_dump($info);
		header("Content-Type:".$info["mime"]);
	//3.执行下载文件名
	  header("Content-Disposition:attachment;filename=".$_GET["name"]);
	//4.指定文件大小
	  header("Content-Length:".filesize($file));
	//5.响应内容
	  readfile($file);
	?>



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值