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 相关文章推荐
计数器详细设计
Oct 09 PHP
zf框架的session会话周期及次数限制使用示例
Mar 13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
PHP上传文件参考配置大文件上传
Dec 16 PHP
php生成验证码,缩略图及水印图的类分享
Apr 07 PHP
php metaphone()函数的定义和用法
May 15 PHP
php上传excel表格并获取数据
Apr 27 PHP
PHP单例模式简单用法示例
Jun 23 PHP
php合并数组并保留键值的实现方法
Mar 12 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
Oct 08 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 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
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
PHP实现的抓取小说网站内容功能示例
2019/06/27 PHP
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
2010/10/18 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
JavaScript的事件机制详解
2017/01/17 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
VUE多层路由嵌套实现代码
2017/05/15 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
pymongo实现多结果进行多列排序的方法
2015/05/16 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
python3实现指定目录下文件sha256及文件大小统计
2019/02/25 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
Python判断对象是否为文件对象(file object)的三种方法示例
2019/04/26 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
关于Keras Dense层整理
2020/05/21 Python
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
2014年教师节寄语
2014/04/03 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
大班上学期个人总结
2015/02/13 职场文书
开业庆典嘉宾致辞
2015/08/01 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript