php - 使用 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);
我花了很多时间研究这个,但还没有找到真正有效的答案。任何帮助表示赞赏,谢谢。
解决方案
如果您不确定自己在做什么 - 保持简单。这是执行您正在执行的操作的最简单方法,即下载文件然后将其保存到磁盘。
<?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。
推荐阅读
- python - Django重定向返回200但页面没有改变
- sas - SAS中分组值的组合
- python - 我的终端说我应该添加一条路径,但我已经有了(Windows 10)
- python - Elasticsearch、映射、日期映射问题
- c# - 使用 c# 进程对象获取有关 citrix 进程的唯一信息
- javascript - 如何在 javascript 中定位这些元素?(更多下文)
- python - 实现广度优先搜索
- java - 通过配置文件禁用 spring-context-indexer
- r - 如何根据复选框输入创建反应表?
- python - python 如何重新对齐我的图表,如图所示