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

主页面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="https://www.jb51.net/FENGZHUANG/bootstrap/css/bootstrap.min.css" type="text/css" /> <script src="https://www.jb51.net/FENGZHUANG/jquery-3.1.1.min.js"></script> <script src="https://www.jb51.net/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> <form role="form" action="upload.php" method="post" enctype="multipart/form-data"> <div> <label for="inputfile">文件输入</label> <input type="file"> </div> <button type="submit">上传</button> </form> </div> <br /><br /><br /> <div> <?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' 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' url='{$v}'>{$name}</button>"; } else { echo "<button type='button' url='{$v}'><div>{$name}</div><div><a href='download.php? url={$v}'><input type='button' value='下载' url='{$v}' /></a>&nbsp;&nbsp;</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" ; } }); }) $("#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" ; } }); })</script> </html>

显示:

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 "文件类型不对"; } }

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

点击上传即可。

下载处理页面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文件上传及下载附带显示文件及目录功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6857221552bebb35ad990e42ef2a0c3e.html