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做的端口嗅探器--可以指定网站和端口
Oct 09 PHP
ThinkPHP采用模块和操作分析
Apr 18 PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 PHP
php不允许用户提交空表单(php空值判断)
Nov 12 PHP
PHP中如何实现常用邮箱的基本判断
Jan 07 PHP
php的一个简单加密解密代码
Jan 14 PHP
使用php记录用户通过搜索引擎进网站的关键词
Feb 13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
Apr 15 PHP
PHP对象链式操作实现原理分析
Oct 09 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
Jul 06 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
Sep 10 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
如何使用Linux的Crontab定时执行PHP脚本的方法
2011/12/19 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
2017/03/08 PHP
PHP实现支持CURL字符串证书传输的方法
2019/03/23 PHP
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
javascript实现日历控件(年月日关闭按钮)
2012/12/12 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
优化javascript的执行效率一些方法总结
2013/12/25 Javascript
js使用ajax读博客rss示例
2014/05/06 Javascript
使用递归遍历对象获得value值的实现方法
2016/06/14 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
vue路由守卫,限制前端页面访问权限的例子
2019/11/11 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
vuex实现购物车的增加减少移除
2020/06/28 Javascript
一个简单的python程序实例(通讯录)
2013/11/29 Python
python处理csv数据的方法
2015/03/11 Python
用PyQt进行Python图形界面的程序的开发的入门指引
2015/04/14 Python
Python使用functools实现注解同步方法
2018/02/06 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
应届护士求职信范文
2014/01/26 职场文书
新闻发布会主持词
2014/03/28 职场文书
银行进社区活动总结
2014/07/07 职场文书
文明旅游倡议书
2015/04/28 职场文书
装修公司管理制度
2015/08/05 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android
5种 JavaScript 方式实现数组扁平化
2021/10/05 Javascript