我有一个按钮,当点击时需要通过提交表单使用POST方式下载文件。[编辑以澄清:下载的文件是基于隐藏表单中的值(我通过jQuery根据点击的按钮更改)动态生成的PHP脚本。所涉及的文件是Excel文件。如果可能的话,我不想使用GET,因为我不希望人们直接链接到该文件。]
我无法使用$.post提交表单,因为这样做并不能按照我的意愿工作。虽然提交很好,但它不会触发浏览器中的下载对话框。据我所知,文件的内容现在存在于JavaScript中,没有办法(我所知道的)允许您将其从JavaScript发送到浏览器以进行下载。因此,其他解决方案(例如如何在提交表单后使用jQuery或Ajax交换背景图像?)在这种特殊情况下不起作用。
然而,由于生成文件可能需要几秒钟的时间,我想向用户显示一个加载动画gif。现在出现的问题是,我可以显示动画,但是在提交表单后无法删除动画。
如果无法使用此方法,则有人可以建议更好的解决方案吗?
我无法使用$.post提交表单,因为这样做并不能按照我的意愿工作。虽然提交很好,但它不会触发浏览器中的下载对话框。据我所知,文件的内容现在存在于JavaScript中,没有办法(我所知道的)允许您将其从JavaScript发送到浏览器以进行下载。因此,其他解决方案(例如如何在提交表单后使用jQuery或Ajax交换背景图像?)在这种特殊情况下不起作用。
我找到的解决方案是使用$("#someform").submit();
来在按钮被点击时触发一个隐藏表单。页面不会重新加载,保存对话框会弹出显示。
示例代码:
$( "#button" ).click(
function() {
$(this).removeClass( "button" );
$(this).addClass( "loading" );
$( "#form" ).submit();
}
);
然而,由于生成文件可能需要几秒钟的时间,我想向用户显示一个加载动画gif。现在出现的问题是,我可以显示动画,但是在提交表单后无法删除动画。
如果无法使用此方法,则有人可以建议更好的解决方案吗?