首页 > 编程 > PHP > 正文

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

2019-11-21 21:07:26
字体:
来源:转载
供稿:网友

主页面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"><?phpsession_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>

显示:

上传处理页面upload.php

<?phpif($_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 "文件类型不对";  }}

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

点击上传即可。

下载处理页面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

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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表