PHP从CDN直接下载文件到客户端

时间:2018-09-07 22:10:01

标签: php download cdn

我从CDN下载文件时遇到问题。我将所有大文件从托管移动到CDN以节省带宽,但PHP的功能正在服务器上运行,无论如何,每次下载都占用带宽。就像流量从CDN->服务器(托管)->客户端流向。有没有直接的CDN->客户端解决方案? 我的下载功能:

function download($url) {
 header ("Content-type: octet/stream");
 header ("Content-disposition: attachment; filename=".$url.";");
 header("Content-Length: ".filesize($url));
 file_get_contents($url);
 exit();
}

强制执行此功能后,我可以在CDN上的登录中看到从服务器(托管)IP下载。

谢谢您的任何建议!

2 个答案:

答案 0 :(得分:0)

您无法直接将其从CDN下载到具有屏蔽的客户端。您需要使用header("Location: http://example.com/file.zip");直接下载到客户端,但是它将显示原始CDN URL到客户端。

答案 1 :(得分:0)

所以几个小时后,我找到了解决方法:

  1. 单击下载按钮后,我正在使用AJAX函数从CDN服务器获取文件的网址
  2. 然后将该URL附加到页面上的下载链接元素
  3. jQuery函数单击此链接(在后台)-强制下载
  4. URL已由jQuery从元素中删除