PHP实现文件上传与下载


Posted in PHP onAugust 28, 2020

本文实例为大家分享了PHP实现文件上传与下载的具体代码,供大家参考,具体内容如下

主页index.php

<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>

上传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);
?>

PHP实现文件上传与下载

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
GD输出汉字的函数的分析
Oct 09 PHP
一个查看session内容的函数
Oct 09 PHP
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
Sep 05 PHP
Mysql中分页查询的两个解决方法比较
May 02 PHP
PHP防止跨域提交表单
Nov 01 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
Aug 19 PHP
php使用COPY函数更新配置文件的方法
Jun 18 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
Dec 19 PHP
PHP获取用户访问IP地址的5种方法
May 16 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
php二维数组按某个键值排序的实例讲解
Feb 15 PHP
PHP实现计算器小功能
Aug 28 #PHP
PHP实现简易图形计算器
Aug 28 #PHP
PHP实现简单的计算器
Aug 28 #PHP
php实现简易计算器
Aug 28 #PHP
有关PHP 中 config.m4 的探索
Aug 26 #PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
Aug 26 #PHP
50个优秀经典PHP算法大集合 附源码
Aug 26 #PHP
You might like
PHP与MySQL交互使用详解
2006/10/09 PHP
php header()函数使用说明
2008/07/10 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
2018/04/20 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
2016/09/01 Javascript
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
vuex存值与取值的实例
2019/11/06 Javascript
vant IndexBar实现的城市列表的示例代码
2019/11/20 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
python爬虫教程之爬取百度贴吧并下载的示例
2014/03/07 Python
常用python编程模板汇总
2016/02/12 Python
Python编程实现线性回归和批量梯度下降法代码实例
2018/01/04 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
vue常用指令代码实例总结
2020/03/16 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
英国羊绒服装购物网站:Pure Collection
2018/10/22 全球购物
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
2019史上最全Database工程师题库
2015/12/06 面试题
服装设计专业毕业生推荐信
2013/11/09 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
人民教师求职自荐信
2014/03/12 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
创业计划书之酒店
2019/08/30 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书
python神经网络编程之手写数字识别
2021/05/08 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python