当前位置: 首页 > 面试题库 >

使用curl下载大文件

谢鸿
2023-03-14
问题内容

我需要使用curl下载远程文件。

这是我的示例代码:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$st = curl_exec($ch);
$fd = fopen($tmp_name, 'w');
fwrite($fd, $st);
fclose($fd);

curl_close($ch);

但是它不能处理大文件,因为它首先读取内存。

是否可以将文件直接流式传输到磁盘?


问题答案:
<?php
set_time_limit(0);
//This is the file where we save the    information
$fp = fopen (dirname(__FILE__) . '/localfile.tmp', 'w+');
//Here is the file we are downloading, replace spaces with %20
$ch = curl_init(str_replace(" ","%20",$url));
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
// write curl response to file
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// get curl response
curl_exec($ch); 
curl_close($ch);
fclose($fp);
?>


 类似资料:
  • 我在两个不同的服务器上使用这个脚本: 这些服务器具有相同的PHP版本和相同的PHP Curl版本。以下是curl结果的两个不同标题: 工作一: HTTP/1.1 302查找日期:2012年6月12日星期二07:04:35 GMT服务器:Apache/2.2.16(Debian)X-Powered-By:PHP/5.3.3-7 squeeze13过期时间:1981年11月19日星期四08:52:00

  • 我们有一个运行在Linux上的Weblogic服务器,有多个受管服务器。我所关心的托管服务器的最大堆大小为1024MB。该服务器上部署了多个应用程序。其中一个应用程序处理来自REST api的响应来下载250MB的文件。对于大于50 MB的文件,有时没有问题,但有时服务器会因OOM错误而崩溃。以下是我的代码: 由于存在内存问题,我尝试采用InpuStream方法。以下是更改后的代码: 此代码没有进

  • 本文向大家介绍php使用curl实现ftp文件下载功能,包括了php使用curl实现ftp文件下载功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了php实现ftp文件下载功能,供大家参考,具体内容如下 不知道为什么用正常的ftp_get函数下载文件速度特别慢,但是用ftp的客户端下载很快,所以换了curl的下载方式,速度正常 测试下载小文件是正常的,但是如果网速很慢,下载大文件时

  • 问题内容: 是否可以使用cURL部分下载远程文件?假设远程文件的实际文件大小为1000 KB。如何仅下载其中的前500 KB? 问题答案: 您还可以使用php-curl扩展名设置range标头参数。 但是如前所述,如果服务器不遵循该标头而是发送整个文件,则curl将下载所有文件。例如,http: //www.php.net忽略标题。但是,您可以(另外)设置一个写函数回调,并在收到更多数据时中止请求

  • 我有一个zip文件的下载链接。但我不知道如何从Python控制台使用wget或cURL将其放入我的下载文件夹(OSX)。 或 这些都不能下载该文件。