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 相关文章推荐
php桌面中心(一) 创建数据库
Mar 11 PHP
PHP session常见问题集锦及解决办法总结
Mar 18 PHP
php不用内置函数对数组排序的两个算法代码
Feb 08 PHP
php preg_filter执行一个正则表达式搜索和替换
Feb 27 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
Aug 09 PHP
Smarty局部缓存的几种方法简介
Jun 17 PHP
php中随机函数mt_rand()与rand()性能对比分析
Dec 01 PHP
PHP速成大法
Jan 30 PHP
CI框架常用方法小结
May 17 PHP
解析PHP之提取多维数组指定列的方法
Jan 03 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
May 15 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 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
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
php操作csv文件代码实例汇总
2014/09/22 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
Aster vs KG BO3 第二场2.19
2021/03/10 DOTA
javascript之解决IE下不渲染的bug
2007/06/29 Javascript
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
DWZ刷新dialog解决方法
2013/03/03 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
2013/04/19 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
js HTML5上传示例代码完整版
2016/10/10 Javascript
巧用数组制作图片切换js代码
2016/11/29 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
2016/12/31 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
Element input树型下拉框的实现代码
2018/12/21 Javascript
Node.js爬虫如何获取天气和每日问候详解
2019/08/26 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
python开发利器之ulipad的使用实践
2017/03/16 Python
Python 实现随机数详解及实例代码
2017/04/15 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
关于numpy数组轴的使用详解
2019/12/05 Python
HTML5新增加的功能详解
2016/09/05 HTML / CSS
美国翻新电子产品商店:The Store
2019/10/08 全球购物
娱乐地球:Entertainment Earth
2020/01/08 全球购物
环保公益广告语
2014/03/13 职场文书
积极向上的团队口号
2014/06/06 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
资金申请报告范文
2015/05/14 职场文书
八年级作文之友谊
2019/12/02 职场文书
创业计划书之都市休闲农庄
2019/12/28 职场文书
python画条形图的具体代码
2022/04/20 Python