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 相关文章推荐
php读取csv实现csv文件下载功能
Dec 18 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
Apr 29 PHP
PHP按行读取文件时删除换行符的3种方法
May 04 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
Nov 04 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
Jan 29 PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 PHP
PHP中的traits实现代码复用使用实例
May 13 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
Nov 14 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
Jun 28 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
Laravel5框架自定义错误页面配置操作示例
Apr 17 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中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
微博短链接算法php版本实现代码
2012/09/15 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
2014/09/06 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
2016/08/11 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
js 巧妙去除数组中的重复项
2010/01/25 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
2011/09/29 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
IE6-8中Date不支持toISOString的修复方法
2014/05/04 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
node.js中的path.sep方法使用说明
2014/12/08 Javascript
Javascript 实现图片无缝滚动
2014/12/19 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
JS实现页面打印功能
2017/03/16 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
基于JS实现快速读取TXT文件
2020/08/25 Javascript
小程序实现tab标签页
2020/11/16 Javascript
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
Python实现通讯录功能
2018/02/22 Python
django 取消csrf限制的实例
2020/03/13 Python
python 实现两个npy档案合并
2020/07/01 Python
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
妇产科护士自我鉴定
2013/10/15 职场文书
2014新年元旦活动策划方案
2014/02/18 职场文书
2014大学生全国两会学习心得体会
2014/03/13 职场文书
竞选大队干部演讲稿
2014/09/11 职场文书
Pytorch中Softmax和LogSoftmax的使用详解
2021/06/05 Python
深入理解pytorch库的dockerfile
2022/06/10 Python
win11自动弹出虚拟键盘怎么关闭? Win11关闭虚拟键盘的技巧
2023/01/09 数码科技