下载文件Curl with url var [英] Download file Curl with url var
问题描述
我想下载一个带有Curl的文件。
问题是下载链接不直接,例如:
I would like to download a file with Curl. The problem is that the download link is not direct, for example:
http://localhost/download.php?id=13456
当我尝试使用curl下载文件时,它会下载文件下载。 php!
When I try to download the file with curl, it download the file download.php!
这是我的curl代码:
Here is my curl code:
###
function DownloadTorrent($a) {
$save_to = $this->torrentfolder; // Set torrent folder for download
$filename = str_replace('.torrent', '.stf', basename($a));
$fp = fopen ($this->torrentfolder.strtolower($filename), 'w+');//This is the file where we save the information
$ch = curl_init($a);//Here is the file we are downloading
curl_setopt($ch, CURLOPT_ENCODING, "gzip"); // Important
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_URL, $fp);
curl_setopt($ch, CURLOPT_HEADER,0); // None header
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1); // Binary trasfer 1
curl_exec($ch);
curl_close($ch);
fclose($fp);
}
有没有办法在不知道路径的情况下下载文件?
Is there a way to download the file without knowing the path?
推荐答案
您可以尝试CURLOPT_FOLLOWLOCATION
You may try CURLOPT_FOLLOWLOCATION
跟随服务器作为HTTP头的一部分
发送的任何Location:头(注意这是递归的,PHP将遵循发送它的许多
Location:头部,除非CURLOPT_MAXREDIRS是
set)。
TRUE to follow any "Location: " header that the server sends as part of the HTTP header (note this is recursive, PHP will follow as many "Location: " headers that it is sent, unless CURLOPT_MAXREDIRS is set).
所以它会导致:
function DownloadTorrent($a) {
$save_to = $this->torrentfolder; // Set torrent folder for download
$filename = str_replace('.torrent', '.stf', basename($a));
$fp = fopen ($this->torrentfolder.strtolower($filename), 'w+');//This is the file where we save the information
$ch = curl_init($a);//Here is the file we are downloading
curl_setopt($ch, CURLOPT_ENCODING, "gzip"); // Important
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER,0); // None header
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1); // Binary transfer 1
curl_exec($ch);
curl_close($ch);
fclose($fp);
}
这篇关于下载文件Curl with url var的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!