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 5.3.1 安装包 VC9 VC6不同版本的区别是什么
Jul 04 PHP
php编写的简单页面跳转功能实现代码
Nov 27 PHP
部署PHP项目应该注意的几点事项分享
Dec 20 PHP
php类的定义与继承用法实例
Jul 07 PHP
php实现面包屑导航例子分享
Dec 19 PHP
php基于PDO实现功能强大的MYSQL封装类实例
Feb 27 PHP
php file_get_contents取文件中数组元素的方法
Apr 01 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
Apr 18 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
PHP的mysqli_select_db()函数讲解
Jan 23 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
Feb 11 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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响应post请求上传文件的方法
2015/12/17 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
javaScript函数中执行C#代码中的函数方法总结
2013/08/07 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
2014/05/09 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
angularjs基础教程
2014/12/25 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
js小数运算出现多位小数如何解决
2015/10/08 Javascript
JavaScript File API文件上传预览
2016/02/02 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
jQuery EasyUI Tab 选项卡问题小结
2016/08/16 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
JavaScript数组,JSON对象实现动态添加、修改、删除功能示例
2018/05/26 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
Python中functools模块的常用函数解析
2016/06/30 Python
pandas中Timestamp类用法详解
2017/12/11 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
python+playwright微软自动化工具的使用
2021/02/02 Python
CSS3的颜色渐变效果的示例代码
2017/09/29 HTML / CSS
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
中专生自荐信
2013/10/12 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
Go使用协程交替打印字符
2021/04/29 Golang
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL
MySQL 5.7常见数据类型
2021/07/15 MySQL