在PHP中,我正在读取文件,然后回复它。像:
rss.php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET");
header("Access-Control-Allow-Headers: x-requested-with, Content-Type, origin, authorization, accept, client-security-token");
header('Content-Type: application/xml');
echo file_get_contents('../../../news.rss');
但是当我通过浏览器访问此rss.php
文件时,它会提供正确的RSS文件内容,但文件名仍然是&#34; rss.php&#34; 。< / p>
我需要将其下载为&#34; news.rss&#34;文件名。
有什么建议吗?
(请让我们忘记为什么我不能直接访问&#34; news.rss&#34;文件。背后有一些重大故事。)谢谢大家。 :)
答案 0 :(得分:2)
试试这个,我目前在我的其他程序中使用它:
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=news.rss');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize('../../../news.rss');
readfile('../../../news.rss');
exit;
而不是回显内容,我们使用readfile()来读取文件并将其输出到输出缓冲区。
<强>更新强>
请注意,以上代码仅下载文件(无查看)。如果你真的想首先显示文件的内容,你可以先显示它,然后再显示另一个链接,或者使用一个&#34;下载&#34;文件。
我也有和你一样的程序。我查看/更新了用户可以输入的文件,使用fwrite()保存它,然后我有一个按钮,使用上面的代码下载文件