用户单击对话框按钮时下载文件

时间:2009-10-10 13:49:29

标签: jquery button dialog

当用户点击网址时,我会打开一个对话框。在该对话框中,我有两个按钮,“确定”(关闭对话框)和“下载文件”(我希望通过PHP创建的文件在单击时下载)。如何使用“下载文件”按钮实现该功能?

我尝试了$ .get,但只检索文件的数据,并没有提示用户下载文件。

感谢。

1 个答案:

答案 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页面一样。