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算开始时间到过期时间的相隔的天数
Jan 12 PHP
PHP通用检测函数集合
Feb 08 PHP
php cookies中删除的一般赋值方法
May 07 PHP
PHP 清空varnish 缓存的详解(包括指定站点下的)
Jun 20 PHP
PHP图片上传代码
Nov 04 PHP
ecshop实现smtp发送邮件
Feb 03 PHP
php文件压缩之PHPZip类用法实例
Jun 18 PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
Dec 25 PHP
PHP PDOStatement::getColumnMeta讲解
Feb 01 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 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生成月历代码
2007/06/14 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
JQuery 确定css方框模型(盒模型Box Model)
2010/01/22 Javascript
js获取当前日期代码适用于网页头部
2013/06/27 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
JS关键字球状旋转效果的实例代码
2013/11/29 Javascript
js四舍五入数学函数round使用实例
2014/05/09 Javascript
JS弹出对话框实现方法(三种方式)
2015/12/18 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
2017/06/12 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
下载给定网页上图片的方法
2014/02/18 Python
Python的Django框架安装全攻略
2015/07/15 Python
Python连接DB2数据库
2016/08/27 Python
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
python把1变成01的步骤总结
2019/02/27 Python
安装PyInstaller失败问题解决
2019/12/14 Python
Python代码中如何读取键盘录入的值
2020/05/27 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
基于 Python 实践感知器分类算法
2021/01/07 Python
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
html5记忆翻牌游戏实现思路及代码
2013/07/25 HTML / CSS
西班牙电子产品购物网站:Electronicamente
2018/07/26 全球购物
正隆泰信息技术有限公司上机题
2012/06/14 面试题
关爱留守儿童倡议书
2014/04/15 职场文书
主持人演讲稿
2014/05/13 职场文书
七年级地理教学计划
2015/01/22 职场文书
商务考察邀请函模板
2015/02/02 职场文书
交通事故被告答辩状
2015/05/22 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python