这是我想下载的链接:
http://username:password@example.com/dl/file.zip
编辑:stackoverflow似乎与冒号,它的用户名 - 冒号密码一样奇怪。
现在,如果我退出网站并使用上面的网址格式,它会成功进行身份验证,我可以成功下载该文件。
我有这个cURL脚本:
<?php
echo "Attempting to download...<br />";
$out = fopen("zip.zip", 'wb');
if ($out == FALSE){
die('File could not be opened, exiting.');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_FILE, $out);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $file);
curl_exec($ch);
curl_close($ch);
fclose($out);
?>
由于某种原因,它只是下载一个0KB的文件。我很确定编码是正确的,但如果不能正常工作则不行。
有任何帮助吗?感谢。
答案 0 :(得分:1)
尝试添加关注位置选项:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
编辑:解释 根据我的经验,许多下载链接被重定向到实际包含该文件的另一个链接。默认情况下,卷曲不遵循重定向,并且需要首先启用该选项。
要调试此问题,您可以设置CURLOPT_RETURNTRANSFER
选项,然后打印curl_exec
结果:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
print_r($result);
如果标头包含Location: ...
参数,那么这就是您的问题。
答案 1 :(得分:0)
您是否在shell中使用curl尝试过URL?
答案 2 :(得分:0)
curl_setopt($ ch,CURLOPT_USERPWD,$ username。':'。$ password);