繁体   English   中英

强制浏览器在文件下载时打开“另存为”对话框

[英]Forcing browser to open “Save As” dialog on file download

我已经阅读了至少 40-50 篇关于这个主题的帖子,但没有一个解决方案真正符合我的要求。 我“命令”我的 WinCE 6.0 板通过 AJAX 请求创建一个备份文件,然后我想将此文件保存到本地 WS。

我有以下 javascript 代码,一旦 AJAX 请求完成就会调用它:

function DownloadControllerBackupDB(theResult)
{
   if(typeof(theResult.Filename) != undefined)
   {
      var myFileLocation = '/data/' + theResult.Filename;

      location.href = myFileLocation;
   }
   else
   {
      Error("Backup failed !");
   }
}

我也尝试过这种方法(而不是“location.href”技术):

function SaveToDisk(fileURL, fileName) 
{
    var save = document.createElement('a');

    save.href = fileURL;
    save.target = '_blank';
    save.download = fileName || 'unknown';

    var event = document.createEvent('Event');
    event.initEvent('click', true, true);
    save.dispatchEvent(event);
    (window.URL || window.webkitURL).revokeObjectURL(save.href);
}

两种“技术”最终在 chrome 50 中得到了相同的结果,该文件确实保存到磁盘中专用于用户文件下载的本地文件夹中...

我希望浏览器将此文件保存到磁盘之前询问我(使用文件请求者) 以便我可以决定将它放在哪里。

我在某处读到您可以在 chrome(可能还有其他浏览器)中设置一个选项以在保存文件之前强制它询问,但我认为要求用户这样做是不可接受的(由于操作的复杂性)。

无论如何在保存链接文件之前“强制”浏览器询问?

谢谢

   let a = document.createElement('a');
   a.href = 'https://www.google.ru/logos/doodles/2016/2016-hockey-world-championship-5085766322487296.2-hp.jpg';
   a.download = true;
   var event = document.createEvent('Event');
   event.initEvent('click', true, true);
   a.dispatchEvent(event)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM