通过jQuery GET强制“另存为”对话框

时间:2011-07-14 20:22:28

标签: php jquery get savefiledialog

我在下面的test.php文件代码中调用了一个jQuery“GET”。

我正在尝试让脚本在生成的test.ini文件上弹出“另存为”对话框,以允许它在本地保存。但是,虽然我可以将结果回显给jQuery,但我似乎无法弹出“另存为”对话框。

更新:感谢下面的解决方案,我只是将$ .get更改为window.location.replace。

$('#test').click(
    function()
    {
        //$.get('<?php echo get_bloginfo('template_directory') ?>/test.php');
        window.location.replace("<?php echo get_bloginfo('template_directory') ?>/test.php");

    }
);

3 个答案:

答案 0 :(得分:8)

您无法获得显示“另存为”对话框的ajax请求,但您可以执行的操作是在页面中插入隐藏的iframe元素,然后将该iframe的源设置为您希望用户使用的网址下载。瞧,这是你的另存为。

这是一个复制和粘贴示例:

$('a#linky').click(function(){
  var iframe = document.createElement("iframe"); 
  iframe.src = 'http://example.com/branding.zip'; 
  iframe.style.display = "none"; 
  document.body.appendChild(iframe);
  return false;
});

答案 1 :(得分:3)

您不需要AJAX。只需导航到有问题的php并在那个php中使用

header('Content-disposition: attachment;filename=whatever.dat');

这将弹出“另存为”对话框,您将保留在原始页面上。

答案 2 :(得分:1)

AJAX请求无法生成文件下载对话框。请考虑在新窗口中打开下载目标。