php文件服务实现虚拟挂载其他目录
$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 \"警告:非法访问!\";
?>
本文地址:https://www.stayed.cn/item/26672
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我