经常我们下载国外资源容易被墙,可以通过php脚本获取远程文件流然后输出给我们的浏览器来下载。
<?php //设置下载文件的url $url = 'https://mirrors.huaweicloud.com/ubuntukylin/ubuntukylin-19.04-enhanced-amd64.iso'; //设置文件的名称 $filename = '8.iso'; $file = fopen($url, "rb"); header('Content-Description: File Transfer'); Header('Content-type: application/octet-stream'); header('Content-Transfer-Encoding: binary'); Header('Accept-Ranges: bytes'); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header('Expires: 0'); header('Pragma: public'); Header('Content-Disposition: attachment; filename=' . $filename); $contents = ""; while (!feof($file)) { echo fread($file, 8192); } fclose($file);
提示:适合小文件下载,大文件传输时间长,web服务器容易断开。另外的方案是通过php分片下载到服务器本地,然后再下载,具体代码正在实现。