Php 从url下载zip文件

Php 从url下载zip文件,php,download,zip,Php,Download,Zip,我想用php从url下载一些zip文件。例如,sitename.com/path/to/file/id/123当您直接转到此url时,会收到文件下载提示。我尝试过使用fopen()和file\u get\u contents()但都失败了。我所做的搜索返回到如何使zip文件可下载,或者如何从sitename.com/path/to/file.zip获取该文件,但我的url没有.zip扩展名 fopen ('url.com') or die('can not open'); 浏览器显示无法打开u

我想用php从url下载一些zip文件。例如,sitename.com/path/to/file/id/123当您直接转到此url时,会收到文件下载提示。我尝试过使用
fopen()
file\u get\u contents()
但都失败了。我所做的搜索返回到如何使zip文件可下载,或者如何从sitename.com/path/to/file.zip获取该文件,但我的url没有.zip扩展名

fopen ('url.com') or die('can not open');

浏览器显示无法打开

url可能是一个脚本,可能正在重定向您。用卷曲代替

$fh = fopen('file.zip', 'w');
$ch = curl_init()
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_FILE, $fh); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // this will follow redirects
curl_exec($ch);
curl_close($ch);
fclose($fh);

url可能是一个脚本,它可能正在重定向您。用卷曲代替

$fh = fopen('file.zip', 'w');
$ch = curl_init()
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_FILE, $fh); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // this will follow redirects
curl_exec($ch);
curl_close($ch);
fclose($fh);

对于这类事情,使用像这样更基本的函数可能更容易

改编自:


对于这类事情,使用像这样的更基本的函数可能更容易

改编自:


但这些方法都失败了。
尝试这些方法时,您收到了什么信息?请显示代码。可能应该使用
http://url.com
如果它没有死亡,但没有显示,尝试回显是不够的。可能有一系列问题。您是否看到任何输出(如果没有正确的标题,会很奇怪)或错误消息<代码>回显文件\u获取\u内容('http://url.com/file');
但这些方法失败。
尝试这些方法时收到了什么消息?请显示代码。可能应该使用
http://url.com
如果它没有死亡,但没有显示,尝试回显是不够的。可能有一系列问题。您是否看到任何输出(如果没有正确的标题,会很奇怪)或错误消息<代码>回显文件\u获取\u内容('http://url.com/file');谢谢对我有用。(从url下载zip文件)谢谢对我有用。(从url下载zip文件)zip文件正在作为空zip文件下载。你知道怎么回事吗?这个答案已经不起作用了。它只会创建一个空的ZIP文件。如果您得到一个空文件,并且ZIP在服务器上工作,那么您可能需要设置一个内容长度。标题(“内容长度:”.filesize($yourfile));如果有人也有问题,只有一部分数据被下载:给更多的时间<代码>curl_setopt($ch,CURLOPT_TIMEOUT,(60*30));//30分钟
当然也允许脚本尽可能长时间运行。zip文件将作为空zip文件下载。你知道怎么回事吗?这个答案已经不起作用了。它只会创建一个空的ZIP文件。如果您得到一个空文件,并且ZIP在服务器上工作,那么您可能需要设置一个内容长度。标题(“内容长度:”.filesize($yourfile));如果有人也有问题,只有一部分数据被下载:给更多的时间<代码>curl_setopt($ch,CURLOPT_TIMEOUT,(60*30));//30分钟
当然也可以让脚本一直运行。