这里有新鲜出炉的PHP教程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于web开发领域。PHP的文件后缀名为php。
这篇文章主要介绍了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="../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>
显示:
上传处理页面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文件上传及下载附带显示文件及目录功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对PHPERZ网站的支持!
来源: http://www.phperz.com/article/17/0902/340061.html