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

发布时间 - 2026-01-11 00:52:27    点击率:

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


# php文件上传及下载  # php  # 文件上传附带文件及目录  # PHP实现文件上传下载实例  # php文件上传、下载和删除示例  # PHP实现文件上传与下载实例与总结  # php多文件上传下载示例分享  # 上一层  # 上传  # 该文件  # 小编  # 在此  # 就不  # 遍历  # 微软  # 给大家  # 弹出  # 点击下载  # 所述  # 给我留言  # 感谢大家  # 进行下载  # 中取  # 文件上传  # 疑问请  # 有任何  # 保存文件 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 桂林网站制作公司有哪些,桂林马拉松怎么报名?  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  详解Android图表 MPAndroidChart折线图  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  如何在IIS中新建站点并解决端口绑定冲突?  iOS验证手机号的正则表达式  如何续费美橙建站之星域名及服务?  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  Laravel如何配置和使用缓存?(Redis代码示例)  高端智能建站公司优选:品牌定制与SEO优化一站式服务  如何在阿里云部署织梦网站?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  如何用花生壳三步快速搭建专属网站?  用v-html解决Vue.js渲染中html标签不被解析的问题  高性能网站服务器配置指南:安全稳定与高效建站核心方案  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  js实现点击每个li节点,都弹出其文本值及修改  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  Laravel distinct去重查询_Laravel Eloquent去重方法  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  Python结构化数据采集_字段抽取解析【教程】  如何在建站主机中优化服务器配置?  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  如何在阿里云服务器自主搭建网站?  如何在Windows服务器上快速搭建网站?  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  简单实现jsp分页  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  UC浏览器如何设置启动页 UC浏览器启动页设置方法  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  进行网站优化必须要坚持的四大原则  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  如何在建站之星网店版论坛获取技术支持?  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  利用JavaScript实现拖拽改变元素大小  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  JS弹性运动实现方法分析  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  制作旅游网站html,怎样注册旅游网站?  JavaScript如何实现错误处理_try...catch如何捕获异常?  如何用好域名打造高点击率的自主建站?  5种Android数据存储方式汇总  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel Docker环境搭建教程_Laravel Sail使用指南