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 相关文章推荐
BBS(php &amp; mysql)完整版(一)
Oct 09 PHP
解决控件遮挡问题:关于有窗口元素和无窗口元素
Jan 28 PHP
深入解析PHP内存管理之谁动了我的内存
Jun 20 PHP
php实现保存submit内容之后禁止刷新
Mar 19 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
Jan 22 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
Aug 18 PHP
Laravel中为什么不使用blpop取队列详析
Aug 01 PHP
Laravel使用RabbitMQ的方法示例
Jun 18 PHP
php进行md5加密简单实例方法
Sep 19 PHP
基于thinkphp6.0的success、error实现方法
Nov 05 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如何解决无法上传大于8M的文件问题
2014/03/10 PHP
php遍历目录方法小结
2015/03/10 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
jQuery 注意事项 与原因分析
2009/04/24 Javascript
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
js微信分享API
2020/10/11 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
vue.js分页中单击页码更换页面内容的方法(配合spring springmvc)
2018/02/10 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
python3中的md5加密实例
2018/05/29 Python
python实现网页自动签到功能
2019/01/21 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
2019/08/27 Python
关于django 1.10 CSRF验证失败的解决方法
2019/08/31 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
如何清空python的变量
2020/07/05 Python
django Model层常用验证器及自定义验证器详解
2020/07/15 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
新东网科技Java笔试题
2012/07/13 面试题
sort命令的作用和用法
2013/08/25 面试题
总裁办公室主任职责
2014/01/02 职场文书
人力资源部经理的岗位职责
2014/03/04 职场文书
信用社竞聘演讲稿
2014/05/16 职场文书
公司员工离职感言
2015/08/03 职场文书
《静夜思》教学反思
2016/02/17 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
Python的这些库,你知道多少?
2021/06/09 Python
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL