![](/img/trans.png)
[英]Is it possible to catch browser's File Open/Save dialog event using Javascript
[英]Using Javascript to send an HTTP attachment to the user (open browser's Save as… dialog)
我是Web开发的新手,所以如果这个问题不好,我深表歉意。 我想在用户请求时(即发送HTTP附件以触发浏览器的“另存为...”对话框)向用户提供服务器硬盘驱动器上的文件。 用户单击页面上的按钮,服务器根据其帐户设置(和其他参数)生成自定义数据文件,然后应弹出“另存为...”对话框。 我应该如何用Java脚本实现呢?
编辑:供您参考,该服务器具有Glassfish和Apache
简,
另存为对话框仅在页面加载时显示。 您需要将用户直接重定向到要保存的文件,或重定向到提供该文件的服务器端页面。
知道文件地址后,执行以下操作
window.location = http://yourserver.com/generatedfiles/file_2342342.txt
或者,执行以下操作:
window.location = http://yourserver.com/getgeneratedfile.aspx?fileID=2342342
...这会将用户重定向到提供所生成文件的页面。 然后,您需要在该页面的标题中指定content-disposition和filename,如Gandalf的回复所述。
编辑:啊,您正在使用Apache。 那时那里可能没有ASPX文件。
设置Http Response标头:
Content-Disposition: attachment; filename=myfile.txt
或类似的东西
<a href="javascript:void(0);" onclick="document.execCommand('SaveAs',true,'file.html');">Save this page</a>
@aric的答案是正确的; 但是, window.location
将导致触发加载/卸载事件,这对于您的应用程序可能不是所希望的。 在这种情况下,您可能会将隐藏的iframe定向到url,以使保存对话框出现而不会丢失页面的状态。
另外,“ SaveAs”可能是document.execCommand的IE特定值,因为它在Firefox中不存在 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.