我尝试使用PHP进行下载重定向。 我通过另一个服务器获取文件
例如:http://rarlab.com/rar/wrar420.exe
我希望脚本将文件保存为临时变量,同时保存, 他将其发送到浏览器下载...
function download($url,$name,$hash){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$data = curl_exec($ch);
curl_close($ch);
header('Content-Description: File Transfer');
header("Content-Disposition: attachment; filename=".$name);
ob_clean();
flush();
readfile($url);
}
download("http://rarlab.com/rar/wrar420.exe","winrar.rar","26digitHASH");
你们这些人。
答案 0 :(得分:1)
您要做的事情几乎超出了PHP的范围,但是由于cURL实现的多手柄功能,它应该是可能的。
请参阅curl_multi_exec()的文档,了解如何使用多手柄功能。
根据this answer,可以在转移完成之前致电curl_multi_getcontent():
//execute the handles
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
// echo the contents downloaded so far
// Note that this must be called with the curl handle, not with the multi handle.
echo curl_multi_getcontent($ch);
flush();
}