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数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
Oct 31 PHP
php生成zip压缩文件的方法详解
Jun 09 PHP
解析php中eclipse 用空格替换 tab键
Jun 24 PHP
eaglephp使用微信api接口开发微信框架
Jan 09 PHP
php中常见的sql攻击正则表达式汇总
Nov 06 PHP
文件上传之SWFUpload插件(代码)
Jul 30 PHP
PHP格式化MYSQL返回float类型的方法
Mar 30 PHP
thinkphp框架下404页面设置 仅三步
May 14 PHP
php+js实现百度地图多点标注的方法
Nov 30 PHP
PHP去除字符串最后一个字符的三种方法实例
Mar 01 PHP
Yii框架实现多数据库配置和操作的方法
May 25 PHP
关于PHP5.6+版本“No input file specified”问题的解决
Dec 11 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
在你的网页中嵌入外部网页的方法
2007/04/02 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
JavaScript的漂亮的代码片段
2013/06/05 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
2013/06/29 Javascript
浅谈javascript的调试
2015/01/28 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
2015/08/25 Javascript
Bootstrap每天必学之模态框(Modal)插件
2016/04/26 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
python中遍历文件的3个方法
2014/09/02 Python
Python反转序列的方法实例分析
2018/03/21 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
python用插值法绘制平滑曲线
2021/02/19 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
python创建学生管理系统
2019/11/22 Python
python异常处理和日志处理方式
2019/12/24 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
python实现数字炸弹游戏
2020/07/17 Python
html5 canvas实现给图片添加平铺水印
2019/08/20 HTML / CSS
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
年终自我鉴定
2013/10/09 职场文书
借款担保书范文
2014/05/13 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
行政处罚决定书
2015/06/24 职场文书
高中军训感想
2015/08/07 职场文书
个人向公司借款协议书
2016/03/19 职场文书
MySQL 使用事件(Events)完成计划任务
2021/05/24 MySQL
Java Socket实现多人聊天系统
2021/07/15 Java/Android