cURL 下载 Zip 文件 - “参数不是有效的 File-Handle 资源”
cURL Download Zip File - " argument is not a valid File-Handle resource"
我正在尝试使用 PHP 和 cURL 从我托管的服务器下载一个 zip 文件并将其存储在另一台服务器上。我的 PHP 看起来像这样:
set_time_limit( 0 );
$ci = curl_init();
curl_setopt_array( $ci, array(
CURLOPT_FILE => '/directory/images.zip', // File Destination
CURLOPT_TIMEOUT => 3600, // Timeout
CURLOPT_URL => 'http://example.com/images/images.zip' // File Location
) );
curl_exec( $ci );
curl_close( $ci );
每当我 运行 时,我都会在 CURLOPT_URL
行收到以下错误:
Warning: curl_setopt_array(): supplied argument is not a valid File-Handle resource in ...
如果我直接在浏览器中访问文件位置,它就会下载。我是否需要传递某种 header 信息,以便它知道这是一个 zip 文件?有什么方法可以调试吗?
您的问题是您必须将文件句柄而不是文件路径传递给 CURLOPT_FILE
。这是一个工作示例
$ci = curl_init();
$url = "http://domain.com/images/images.zip"; // Source file
$fp = fopen("/directory/images.zip", "w"); // Destination location
curl_setopt_array( $ci, array(
CURLOPT_URL => $url,
CURLOPT_TIMEOUT => 3600,
CURLOPT_FILE => $fp
));
$contents = curl_exec($ci); // Returns '1' if successful
curl_close($ci);
fclose($fp);
我正在尝试使用 PHP 和 cURL 从我托管的服务器下载一个 zip 文件并将其存储在另一台服务器上。我的 PHP 看起来像这样:
set_time_limit( 0 );
$ci = curl_init();
curl_setopt_array( $ci, array(
CURLOPT_FILE => '/directory/images.zip', // File Destination
CURLOPT_TIMEOUT => 3600, // Timeout
CURLOPT_URL => 'http://example.com/images/images.zip' // File Location
) );
curl_exec( $ci );
curl_close( $ci );
每当我 运行 时,我都会在 CURLOPT_URL
行收到以下错误:
Warning: curl_setopt_array(): supplied argument is not a valid File-Handle resource in ...
如果我直接在浏览器中访问文件位置,它就会下载。我是否需要传递某种 header 信息,以便它知道这是一个 zip 文件?有什么方法可以调试吗?
您的问题是您必须将文件句柄而不是文件路径传递给 CURLOPT_FILE
。这是一个工作示例
$ci = curl_init();
$url = "http://domain.com/images/images.zip"; // Source file
$fp = fopen("/directory/images.zip", "w"); // Destination location
curl_setopt_array( $ci, array(
CURLOPT_URL => $url,
CURLOPT_TIMEOUT => 3600,
CURLOPT_FILE => $fp
));
$contents = curl_exec($ci); // Returns '1' if successful
curl_close($ci);
fclose($fp);