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
PHP 中检查或过滤IP地址的实现代码
Nov 27 PHP
php验证session无效的解决方法
Nov 04 PHP
php实现字符串首字母转换成大写的方法
Mar 17 PHP
php自定义urlencode,urldecode函数实例
Mar 24 PHP
php实现smarty模板无限极分类的方法
Dec 07 PHP
PHP的PDO操作简单示例
Mar 30 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
Jun 13 PHP
PHP从二维数组得到N层分类树的实现代码
Oct 11 PHP
Yii框架用户登录session丢失问题解决方法
Jan 07 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
Mar 18 PHP
Laravel配合jwt使用的方法实例
Oct 25 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 iconv方法的使用
2011/10/01 PHP
php判断文件夹是否存在不存在则创建
2015/04/09 PHP
Zend Framework缓存Cache用法简单实例
2016/03/19 PHP
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
javascript 写类方式之七
2009/07/05 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
Bootstrap每天必学之表单
2015/11/23 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
文本框只能输入数字的js代码(含小数点)
2016/07/10 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
JS跳转手机站url的若干注意事项
2017/10/18 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
零基础写python爬虫之爬虫编写全记录
2014/11/06 Python
在Python中使用模块的教程
2015/04/27 Python
详解Python网络爬虫功能的基本写法
2016/01/28 Python
python框架django基础指南
2016/09/08 Python
python 如何快速找出两个电子表中数据的差异
2017/05/26 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
Python sublime安装及配置过程详解
2020/06/29 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
荷兰家电销售网站:Welhof
2020/12/08 全球购物
统计每一学生的平均成绩
2014/06/06 面试题
企业活动策划方案
2014/06/02 职场文书
社区健康教育工作方案
2014/06/03 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
机关中层领导干部群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
优秀英文求职信范文
2015/03/19 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书