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中hashtable实现示例分享
Feb 13 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
Jun 26 PHP
php实现的发送带附件邮件类实例
Sep 22 PHP
php的XML文件解释类应用实例
Sep 22 PHP
PHP检测字符串是否为UTF8编码的常用方法
Nov 21 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
Apr 20 PHP
PHP批量生成图片缩略图的方法
Jun 18 PHP
PHP书写格式详解(必看)
May 23 PHP
php mongodb操作类 带几个简单的例子
Aug 25 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
Oct 26 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 11 PHP
如何通过PHP实现Des加密算法代码实例
May 09 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
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
用PHP制作静态网站的模板框架
2006/10/09 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
fromCharCode和charCodeAt 方法
2006/12/27 Javascript
javascript 中对象的继承〔转贴〕
2007/01/22 Javascript
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
jquery一句话全选/取消全选
2011/03/01 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
JavaScript中数组添加值和访问值常见问题
2016/02/06 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
jQuery初级教程之网站品牌列表效果
2017/08/02 jQuery
详解如何优雅地在React项目中使用Redux
2017/12/28 Javascript
[01:47]2018年度DOTA2最佳教练-完美盛典
2018/12/16 DOTA
Python发送form-data请求及拼接form-data内容的方法
2016/03/05 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
python逆向入门教程
2018/01/15 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
django admin 添加自定义链接方式
2020/03/11 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
Opencv求取连通区域重心实例
2020/06/04 Python
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
台湾森森购物网:U-mall
2017/10/16 全球购物
清扬洗发水广告词
2014/03/14 职场文书
主管竞聘书范文
2014/03/31 职场文书
天猫活动策划方案
2014/08/21 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
初中班主任心得体会
2016/01/07 职场文书
NodeJs使用webpack打包项目的方法详解
2022/02/28 NodeJs
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang