php文件上传及下载附带显示文件及目录功能


Posted in PHP onApril 27, 2017

主页面wenjianceshi.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>文件</title>
<link href="../FENGZHUANG/bootstrap/css/bootstrap.min.css" rel="external nofollow" rel="stylesheet" type="text/css" />
<script src="../FENGZHUANG/jquery-3.1.1.min.js"></script>
<script src="../FENGZHUANG/bootstrap/js/bootstrap.min.js"></script>
<style type="text/css">
  *{
    font-family:"微软雅黑";}
  #wai{width:400px;
    margin:0 auto;
    padding:0px;}
  #chuanshu{
    width:400px;
    margin:0 auto;
    padding:0px;}
  .waibtn{
    width:100%;;
    height:30px;}
  .wjm,.wjbtn{
    width:50%;
    height:100%;
    float:left;
    }
</style>
</head>
<body>
<div id="chuanshu">
  <form role="form" action="upload.php" method="post" enctype="multipart/form-data">
   <div class="form-group">
    <label for="inputfile">文件输入</label>
    <input type="file" name="file" id="inputfile">
   </div>
   <button type="submit" class="btn btn-default">上传</button>
  </form>
</div>
<br /><br /><br />
<div id="wai">
<?php
session_start();
//定义目录
$fname = "./a";//需要显示的目录
if(!empty($_SESSION["fname"]))
{
  $fname = $_SESSION["fname"];
}
$pname = dirname($fname); //取上级目录
if(realpath($fname)=="D:\\wamp\\www\\lt\\a")//注意路径的匹配
{
}//到达了需要显示的最上层目录就不显示上一层标签了
else
{
  echo "<button type='button' id='prev' class='btn waibtn btn-success' url='{$pname}'>返回上一层</button>";
}
//遍历目录下的所有文件显示
$arr = glob($fname."/*");
foreach($arr as $v)
{
  $name = basename($v); //从完整路径中取文件名
  $name = iconv("gbk","utf-8",$name);
  if(is_dir($v))
  {
    echo "<button type='button' class='btn dir waibtn btn-primary' url='{$v}'>{$name}</button>";
  }
  else
  {
    echo "<button type='button' class='btn waibtn item btn-default' url='{$v}'><div class='wjm'>{$name}</div><div class='wjbtn'><a href='download.php? url={$v}'><input type='button' value='下载' url='{$v}' class='download btn btn-warning btn-xs' /></a>  </div></button>";
  }
}
?>
</div>
</body>
<script type="text/javascript">
$(".dir").click(function(){
    var url = $(this).attr("url");
    $.ajax({
        url:"chuli2.php",
        data:{url:url},
        type:"POST",
        dataType:"TEXT",
        success: function(data){
            window.location.href="wenjianceshi.php" rel="external nofollow" rel="external nofollow" ;
          }
      });
  })
$("#prev").click(function(){
  var url = $(this).attr("url");
  $.ajax({
      url:"chuli2.php",
      data:{url:url},
      type:"POST",
      dataType:"TEXT",
      success: function(data){
          window.location.href="wenjianceshi.php" rel="external nofollow" rel="external nofollow" ;
        }
    });
  })</script>
</html>

显示:

php文件上传及下载附带显示文件及目录功能php文件上传及下载附带显示文件及目录功能

上传处理页面upload.php

<?php
if($_FILES["file"]["error"])
{
  echo $_FILES["file"]["error"];
}
else
{
  if($_FILES["file"]["size"]<10240000)
  {
    //防止文件名重复
    $filename = "./a/".time().$_FILES["file"]["name"];
    //转码
    $filename = iconv("UTF-8","gb2312",$filename);
    if(file_exists($filename))
    {
      echo "该文件已存在";
    }
    else
    {
      //保存文件
      move_uploaded_file($_FILES["file"]["tmp_name"],$filename);
      header("location:wenjianchuanshu.php");
    }
  }
  else
  {
    echo "文件类型不对";
  }
}

点击选择文件之后选中了文件会显示:

php文件上传及下载附带显示文件及目录功能

点击上传即可。

下载处理页面download.php

<?php
$url = $_GET["url"];
$bname = basename($url);
header("Content-type:text/html;charset=utf-8"); 
$file_name="{$bname}"; 
//用以解决中文不能显示出来的问题 
$file_name=iconv("utf-8","gb2312",$file_name); 
$file_sub_path=$_SERVER['DOCUMENT_ROOT']; 
$file_path="{$url}"; 
//首先要判断给定的文件存在与否 
if(!file_exists($file_path)){ 
echo "没有该文件"; 
return ; 
} 
$fp=fopen($file_path,"r"); 
$file_size=filesize($file_path); 
//下载文件需要用到的头 
Header("Content-type: application/octet-stream"); 
Header("Accept-Ranges: bytes"); 
Header("Accept-Length:".$file_size); 
Header("Content-Disposition: attachment; filename=".$file_name); 
$buffer=10240000; 
$file_count=0; 
//向浏览器返回数据 
while(!feof($fp) && $file_count<$file_size){ 
$file_con=fread($fp,$buffer); 
$file_count+=$buffer; 
echo $file_con; 
} 
fclose($fp);

点击下载会弹出下载框,然后进行下载即可。

点击文件夹或者上一层的处理页面chuli2.php

<?php
session_start();
$url = $_POST["url"];
$_SESSION["fname"] = $url;

以上所述是小编给大家介绍的php文件上传及下载附带显示文件及目录功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
详解:――如何将图片储存在数据库里
Dec 05 PHP
PHP函数常用用法小结
Feb 08 PHP
php数组函数序列之in_array() 查找数组值是否存在
Oct 29 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
Jan 10 PHP
php操作XML、读取数据和写入数据的实现代码
Aug 15 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 PHP
学习php设计模式 php实现访问者模式(Visitor)
Dec 07 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 PHP
Adnroid 微信内置浏览器清除缓存
Jul 11 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
Oct 14 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
Aug 07 PHP
phpMyAdmin无法登陆的解决方法
Apr 27 #PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
Apr 27 #PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
Apr 27 #PHP
PHP实现的常规正则验证helper公共类完整实例
Apr 27 #PHP
php上传excel表格并获取数据
Apr 27 #PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 #PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 #PHP
You might like
在线竞拍系统的PHP实现框架(一)
2006/10/09 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
2012/09/13 PHP
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
Laravel框架学习笔记之批量更新数据功能
2019/05/30 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
2011/02/25 Javascript
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
jquery自定义函数的多种方法
2014/01/09 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
2013/12/08 Python
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
python中zip()方法应用实例分析
2016/04/16 Python
Python 转义字符详细介绍
2017/03/21 Python
Linux上使用Python统计每天的键盘输入次数
2019/04/17 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
导师就业推荐信范文
2014/05/22 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
写给医生的感谢信
2015/01/22 职场文书
出国导师推荐信
2015/03/25 职场文书
借条如何写
2015/05/26 职场文书
2015秋季小学开学寄语
2015/05/27 职场文书
教师学习中国梦心得体会
2016/01/05 职场文书
职场新人知识:如何制定一份合理的工作计划?
2019/09/11 职场文书
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP
详解nginx进程锁的实现
2021/06/14 Servers
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python
Github 使用python对copilot做些简单使用测试
2022/04/14 Python