php 下载服务器任意文件

栏目: PHP · 发布时间: 7年前

内容简介:发表于 2018-11-08 09:25:43 by月小升2018年11月服务器挂了,各种底层命令行失效,只能通过只有cd 和 cat命令有效 vi失效,ls失效

发表于 2018-11-08 09:25:43 by月小升

2018年11月服务器挂了,各种底层命令行失效,只能通过 php 来 下载 服务器的数据库备份文件 (备份还是应该在异地备份,否则麻烦的很)

只有cd 和 cat命令有效 vi失效,ls失效

cat > a.php << \EOF

输入完毕 php 代码输入EOF就可以退出了。

<?php
$name = $_GET['name'];
function read($filename){
$arr = explode("/", $filename);
$lastname =  $arr[count($arr)-1];
 
$file_size = filesize($filename);
    header("Content-type: application/octet-stream"); //返回的文件 
  header("Accept-Ranges: bytes");   //按照字节大小返回
  header("Accept-Length: $file_size"); //返回文件大小
  header("Content-Disposition: attachment; filename=".$lastname);//这里客户端的弹出对话框,对应的文件名
    $fp = fopen($filename, "rb");//读取二进制文件时,需要将第二个参数设置成'rb'
//向客户端返回数据
 //设置大小输出
 $buffer=1024;
 $file_count=0;
 while(!feof($fp) && ($file_size-$file_count)>0){
  $file_data=fread($fp,$buffer);
  $file_count+=$buffer;
  echo $file_data;
 }
 fclose($fp);
}
$file = '/root/'.$name;
 
read($file);
 ?>

此代码可以实现 下载 站的文件验证,加密,等各种功能,因为所有文件下载必须经过 php 文件,就可以进行cookie认证鉴权等操作。

比如服务器存了个java-er.com.zip,客户下载必须登录,就可以用php来实现。发现客户没登录,那么禁止下载

当然这个zip文件实际上不在http服务目录下,而是在专门的无法被http直接访问的目录。

首发地址:–

无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

Learn Python 3 the Hard Way

Learn Python 3 the Hard Way

Zed A. Shaw / Addison / 2017-7-7 / USD 30.74

You Will Learn Python 3! Zed Shaw has perfected the world’s best system for learning Python 3. Follow it and you will succeed—just like the millions of beginners Zed has taught to date! You bring t......一起来看看 《Learn Python 3 the Hard Way》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具