首页 > 解决方案 > 使用 PHP cURL 下载和 Excel 文件

问题描述

几天来,我一直在尝试能够调用远程服务器上的 url,当您将 url 放入浏览器时,该远程服务器会自动下载 Excel 文件。我在本地创建了一个页面,该页面会自动下载文件进行测试,但我无法让 cURL 来执行此操作。该脚本没有返回错误并说它是成功的,但它写入的文件已损坏并打开空白。

这是代码...

$output_file = 'E:\Downloads\Export.xlsx';
$download_url = 'http://localhost/test/urlexport.php';

$ch = curl_init();
$out = fopen($output_file, 'w');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FILE, $out);
curl_setopt($ch, CURLOPT_URL, $download_url);
$output = curl_exec($ch);
fwrite($out, $output);

if(curl_exec($ch) === false)
{
echo 'Curl error: ' . curl_error($ch);
}
else
{
echo 'Operation completed without any errors';
}

if(curl_errno($ch)){
echo 'Curl error: ' . curl_error($ch);
}

curl_close($ch);

我花了很多时间研究这个,但还没有找到真正有效的答案。任何帮助表示赞赏,谢谢。

标签: phpcurl

解决方案


如果您不确定自己在做什么 - 保持简单。这是执行您正在执行的操作的最简单方法,即下载文件然后将其保存到磁盘。

<?php
$output_file = 'E:\Downloads\Export.xlsx';
$download_url = 'http://localhost/test/urlexport.php';

$file = file_get_contents($download_url);
file_put_contents($output_file, $file);

如果这不起作用,那么您的下载 url 没有按照您认为的那样做。看看 $output_file 中的实际内容(在文本编辑器中打开它)——也许是一些 html。


推荐阅读