如何编写php以便可以通过linux命令行下载正确的文件?

时间:2011-03-01 03:55:00

标签: wget

所以基本上我有一个问题,用户将发送请求到test.php?getnextfile = 1,我需要处理请求并找出下载的下一个文件是什么,并将其传递给用户。我坚持的部分是如何为用户获取正确的文件名(服务器知道正确的文件名,用户没有)。

目前我已尝试在test.php?getnextfile = 1上使用wget,并且实际上并没有使用正确的文件名保存。还尝试将标头重定向到正确的文件,这也不起作用。

有什么想法吗?

非常感谢!

杰森

2 个答案:

答案 0 :(得分:1)

自2010年7月起,在默认的wget配置中这是不可能的。在修复安全漏洞的过程中,默认情况下,他们关闭了“trust-server-names”选项。有关更多信息,请参阅以下答案:

https://serverfault.com/questions/183959/how-to-tell-wget-to-use-the-name-of-the-target-file-behind-the-http-redirect

答案 1 :(得分:0)

在您的php脚本中,您需要设置'Content-Disposition'标题:

<?php

header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="myfile.zip"');
readfile('myfile.zip');

?>

使用curl而不是wget来测试它。

curl --remote-name --remote-header-name http://127.0.0.1:8080/download