当用户点击网址时,我会打开一个对话框。在该对话框中,我有两个按钮,“确定”(关闭对话框)和“下载文件”(我希望通过PHP创建的文件在单击时下载)。如何使用“下载文件”按钮实现该功能?
我尝试了$ .get,但只检索文件的数据,并没有提示用户下载文件。
感谢。
答案 0 :(得分:1)
在该按钮的点击处理程序中:
window.location.href = "path/to/file/on/server.txt";
顺便说一下,在这种情况下,你实际上不必写出文件。您可以使用URL重写将其设置为“虚拟文件”,该文件运行PHP代码以在访问时发出文件数据。您更改PHP以直接返回生成的文件数据,而不是将其写入文件。
编辑:Apache中的虚拟文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /vfiles
RewriteRule ~vfiles/([a-z]+)\.txt vfile-handler.php?id=$1 [L,QSA]
</IfModule>
这表示http://my.server/vfiles/foo.txt透明地重定向到Apache服务器内部以运行vfile-handler.php,并将其作为查询字符串传递给它“id = foo”,您可以像处理任何其他GET请求一样处理它查询字符串。然后,您的PHP脚本会适当地设置MIME类型(在这种情况下为text/plain
,因为我们声称是.txt文件)并构建回复,就像我们正在构建HTML页面一样。