使用PHP通过URL下载并重命名文件

时间:2013-10-08 13:17:08

标签: php download

我有这个网址

  

www1.intranet.com/reportingtool.asp?settings=var&export = ok

我可以下载报告。报告的文件名包含时间戳。例如 123981098298.xls ,每次下载都会有所不同。

我想要一个包含此功能的脚本:

<?php
//Download the File

//rename it to **report.xls**

//save it to a specified place
?>

在搜索stackoverflow并搜索此主题后,我不知道:(

这通常是可能的吗?

2 个答案:

答案 0 :(得分:7)

最简单的场景

您可以使用file_get_contents下载报告:

$report = file_get_contents('http://www1.intranet.com/reportingtool.asp?...');

使用file_put_contents

将其保存在本地(在运行PHP的计算机上)
file_put_contents('/some/path/report.xls', $report);

更多选项

  • 如果下载需要控制HTTP请求(例如,因为您需要使用Cookie或HTTP身份验证),则必须通过cURL完成,这样才能完全自定义请求。
  • 如果报告规模较大,则可以直接将其流式传输到目的地,而不是分三步执行读取/存储/写入(例如,使用fopen / fread / {{1 }})。

答案 1 :(得分:2)

这可能不起作用,具体取决于您的安全设置,但这是一个简单的示例:

<?php
$file = file_get_contents('http://www1.intranet.com/reportingtool.asp?settings=var&export=ok');
file_put_contents('/path/to/your/location/report.xls', $file);

请参阅file_get_contentsfile_put_contents