> 백엔드 개발 > PHP 튜토리얼 > php如何实现代理下载文件

php如何实现代理下载文件

WBOY
풀어 주다: 2016-06-23 13:50:06
원래의
3103명이 탐색했습니다.

假如a.com/a.rar在天朝无法访问,如果写一个a.php脚本,放在海外服务器上,访问脚本路径b.com/a.php?url=http://a.com/a.rar
就可以实现文件下载了,请问这个a.php文件怎么写


回复讨论(解决方案)

你确定 绕着弯就可以翻墙了?

http://www.cnblogs.com/sum41van/articles/1422450.html

b.com/a.php?url=http://a.com/a.rar
如果文件不大可以这样写

$url = isset($_GET['url'])? $_GET['url'] : '';if($url){    $content = file_get_contents($url);    if($content){        header('cache-control:public');        header('content-type:application/octet-stream');        header('content-disposition:attachment; filename='.basename($url));        echo $content;    }}
로그인 후 복사
로그인 후 복사

要保证
1.天朝可以访问b.com
2.b.com可以访问a.com

可以使用 curl

$url = '传入的目标url';$ch = curl_init(); //初始化curl_setopt($ch, CURLOPT_URL, $url);//curl_setopt($ch, CURLOPT_REFERER, '某个来路url'); //伪造来路页面curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'func');curl_exec($ch); //执行function func($ch, $str) {  static $s = '@';  if($s) {    $s = trim($str);    if($s) header($s);  }else echo $str;  return strlen($str);}
로그인 후 복사

b.com/a.php?url=http://a.com/a.rar
如果文件不大可以这样写

$url = isset($_GET['url'])? $_GET['url'] : '';if($url){    $content = file_get_contents($url);    if($content){        header('cache-control:public');        header('content-type:application/octet-stream');        header('content-disposition:attachment; filename='.basename($url));        echo $content;    }}
로그인 후 복사
로그인 후 복사


谢谢亲,如果能加入下载流量统计就好了

下载次数统计?

下载次数统计?

不是的。就是记录通过这个文件下载过的文件大小加起来数值

把下载的功能,整合到方法里面,执行一次就往数据表加1


下载次数统计?

不是的。就是记录通过这个文件下载过的文件大小加起来数值

下??的文件大小加起??
echo strlen($content); 
可以?取大小后??在???。



下载次数统计?

不是的。就是记录通过这个文件下载过的文件大小加起来数值

下??的文件大小加起??
echo strlen($content); 
可以?取大小后??在???。
谢谢啦,今天学了一天的html把代码整合进去的作品




下载次数统计?

不是的。就是记录通过这个文件下载过的文件大小加起来数值

下??的文件大小加起??
echo strlen($content); 
可以?取大小后??在???。
谢谢啦,今天学了一天的html把代码整合进去的作品
http://qqgae.byethost16.com/1/

如问题解决了请结贴。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿