php文件服务实现虚拟挂载其他目录示例


php文件服务实现虚拟挂载其他目录

复制代码 代码如下:

<?php
function base64url_encode($data) {
  return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}
function base64url_decode($data) {
  return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
}
function array_verify($var)
  {
   return isset($var)&&is_array($var) && count($var)>0;
  }
  function format_file_size($var)
  {
   if($var<1024) return $var.' B';
   if($var<1048576) return ($var/1024.0).' K';
   if($var<1073741824) return ($var/1048576.0).' M';
   return ($var/1073741824.0).' G';
  }

  $dir="F:";//不以/结尾
  $path="";

 if(array_verify($_GET)&&isset($_GET["path"]))
 {
  $path=base64url_decode($_GET["path"]);
  preg_match("#^[^/].*$|^.*\.$|^\..*$|\./\.|/\.|\./#",$path,$temp);
    if(array_verify($temp))
   {
    echo
      '<html>
               <head>
               <meta http-equiv="content-type" content="text/html;charset=gb2312" />
               <body>';
           echo "警告 index.php?path=".$_GET["path"]." 非法url<br/></body></html>";
     exit;
      }
 $path=preg_replace("#[/\/]{2,}#","/",$path);
 }

if(is_dir($dir.$path))
    {
 echo '<html>
          <head>
          <meta http-equiv="content-type" content="text/html;charset=gb2312" />
          <body>';
 echo "目录   <b>".$path."</b><br/><br/>";

 $dir_res=opendir($dir.$path);
 while($filen=readdir($dir_res))
     {
      if($filen!='.'&&$filen!='..')
      {
          if(is_file($dir.$path.'/'.$filen))
          {
               echo '<a href="index.php?path='.base64url_encode($path.'/'.$filen).'" >'.$filen.'</a> ('.format_file_size(filesize($dir.$path.'/'.$filen)).")<br/>\n";
             }else
           {
                echo '<a href="index.php?path='.base64url_encode($path.'/'.$filen).'" >'.$filen."</a><br/>\n";
           }

         }else if($filen=='..')
             {
               preg_match("#([^/]+/{1})*[^/]+(?=/)#",$path,$parent);
            if(array_verify($parent))
               {
                       echo '<a href="index.php?path='.base64url_encode('/'.$parent[0]).'" >'.$filen."</a><br/>\n";
                  }else
          {
                        echo '<a href="index.php?path='.base64url_encode('/').'" >'.$filen."</a><br/>\n";
                   }
          }
     }
 echo '</body>
         </html>';
 }
    else if(is_file($dir.$path))
        {
                $file_size = filesize($dir.$path);
                header("Content-type: application/octet-stream");
                header("Accept-Ranges: bytes");
                header("Accept-Length: ".$file_size);
                Header("Content-Disposition: attachment; filename=".basename($dir.$path));
                readfile($dir.$path);//大文件请选择其他方式
           }else
            echo "警告:非法访问!";

?>



相关阅读:
C++设计模式之观察者模式
html5配合css3实现带提示文字的输入框(摆脱js)
JavaScript检测字符串中是否含有html标签实现方法
C#的SQL操作类实例
iOS中的NSURLCache数据缓存类用法解析
基于递归实现的php树形菜单代码
利用CSS span实现双语菜单的方法教程
PHP批量生成静态HTML的简单原理和方法
Win10最新预览版怎么还原以前Win7或Win8?
MySQL数学函数简明总结
MySQL页面访问统计及排名情况
JavaScript实现随机替换图片的方法
iOS应用中发送HTTP的get请求以及HTTP异步请求的方法
mysql动态游标学习(mysql存储过程游标)
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 CMS SQL jQuery C# C++ java Android IOS oracle MongoDB PostgreSQL SQLite 交通频道 长山客运站 黑龙江省哈尔滨市五常市
郓城双桥客运站 山东省菏泽市郓城县
灵山第二客运总站行包货物快运部 广西壮族自治区钦州市灵山县
谢河镇汽车客运站 甘肃省武威市凉州区
松花江客运站 黑龙江省哈尔滨市依兰县
北京双祥客运 北京市辖区丰台区太平桥乙306号
盐池惠安堡汽车站 宁夏回族自治区吴忠市盐池县
景谷民乐客运站 云南省普洱市景谷傣族彝族自治县
庆城汽车南站 甘肃省庆阳市庆城县
大港区客运中心站 一零六省道
乾安客运站 吉林省松原市乾安县
临淄长途汽车站候车室 山东省淄博市临淄区
黄石河口客运站 湖北省黄石市西塞山区
章丘长途汽车总站 山东省济南市章丘市
木兰利东客运站 黑龙江省哈尔滨市木兰县
长寿汽车西站 双园支路3
中国邮政玉田县邮政局汽车站支局 河北省唐山市玉田县
越秀南客运站发车区 广东省广州市越秀区
石油车站 甘肃省庆阳市庆城县
沛县长途汽车客运站 江苏省徐州市沛县
高田汽车站 江西省抚州市资溪县
野马客运站 吉林省白城市洮南市
珊瑚客运站 江苏省泰州市泰兴市
上虞汽车西站 春晖工业大道
辛集王口客运站 天王线
洞口县竹市汽车站 湖南省邵阳市洞口县
天长长途汽车站 建设东路
通化客运站老站 建设大街1338号
武店社会客运站 安徽省滁州市凤阳县
赤土壑汽车站 山西省太原市娄烦县
黄岗汽车站 江西省宜春市宜丰县
乐业汽车客运站 广西壮族自治区百色市乐业县
三水运发汽车站 佛山市三水区西南街道广海大道西18号
丘北双龙营汽车客运站 云南省文山壮族苗族自治州丘北县
乐安鳌溪客运站 江西省抚州市乐安县
霞流农村客运站 湖南省衡阳市衡东县
丽江客运站玉河售票发车点 云南省丽江市古城区
巴运司江北客运中心站售票处 滨河北路中段17
五常客运站 通达大街68
宁津县柴胡店镇客运站 山东省德州市宁津县
杨店客运站 河南省信阳市息县
长葛石固汽车站 河南省许昌市长葛市
鄂州市城南中心客运站 滨湖西路116
闽运长乐客运站 爱心路87
昌宁客运站 云南省保山市昌宁县
短途车站 山东省聊城市东昌府区
惠安汽车总站稽查室 福建省泉州市惠安县
月江客运站 四川省宜宾市高县
柑子汽车站 四川省广安市邻水县
盖州北海客运 辽宁省营口市盖州市
景县王谦寺汽车站 河北省衡水市景县
蒲上乡辛庄客运站 河北省保定市顺平县
溪口公路运输公司汽车出租分公司 中兴东路567号
西柳客车站 食品城路
金堂福兴客运站 四川省成都市金堂县
西运司会东汽车站售票候车室 光明街203号
师宗客运站 云南省曲靖市师宗县
靖州新厂汽车站 湖南省怀化市靖州苗族侗族自治县
吴江八坼汽车站 二二七省道
四亩地镇五级客运站 陕西省汉中市佛坪县
白蝉汽车站 四川省绵阳市游仙区
太原汽车客运东站停车场 淖马村
汽车站旅馆 河北省张家口市阳原县
桃林客运站 湖南省岳阳市临湘市
阳高兴苑客运站 山西省大同市阳高县
盖租乡客运站 四川省凉山彝族自治州盐源县
军供客运站 新疆维吾尔自治区乌鲁木齐市沙依巴克区
中国供销合作社芳华客运站 云南省曲靖市陆良县
桦甸市公路客运站金沙分流站 吉林省吉林市桦甸市
绿汁客运中心 云南省玉溪市易门县
红沙岗汽车站 甘肃省武威市民勤县
长石乡车站 四川省达州市万源市
靖州客运站 湖南省怀化市靖州苗族侗族自治县
漳浦车站 福建省漳州市漳浦县
华安仙都镇农村客运站 福建省漳州市华安县
龙游客运北站车出口处 浙江省衢州市龙游县
埠子汽车站 江苏省宿迁市宿城区
莒南文疃客运站 山东省临沂市莒南县
田林县汽车总站出口 广西壮族自治区百色市田林县
还地桥客运站 还桥大道
乐清虹桥客运中心 一零四国道
项城市中心汽车站 河南省周口市项城市
回龙车站 四川省凉山彝族自治州冕宁县
云安高村客运站 广东省云浮市云安县
安陆老汽车站 湖北省孝感市安陆市
通许练城乡客运站 河南省开封市通许县
蓬朗客运站 江苏省苏州市昆山市
龙孔汽车站 四川省乐山市犍为县
和平客运站 零二一县道
南城汽车客运总站停车场 广东省东莞市
富阳汽车客运南站 大桥南路与春永线路口北
芜湖汽车南站 九华南路462
汤阴县瓦岗乡汽车客运站 河南省安阳市汤阴县
马当车站 江西省九江市彭泽县
周巷汽车站 三二九国道
黑河红色边疆客运站 黑龙江省黑河市爱辉区
漳浦县前亭镇农村客运站 福建省漳州市漳浦县
新建县流湖乡客运站 江西省南昌市新建县
赤峰汽车站-公交车站 内蒙古自治区赤峰市松山区
朱马店客运站 安徽省淮南市凤台县

Copyright © 2016 phpStudy |