gpt4 book ai didi

javascript - createObjectURL blob url 在 Firefox 中不安全

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:41:34 28 4
gpt4 key购买 nike

我正在尝试使用浏览器保存从安全 URL (https) 下载的文件,但我在使用 Firefox 时遇到问题。

我使用 indexedDB 将文件存储在浏览器内存中,当下载完成后,我尝试将文件保存在我的计算机中(我使用的是 Mac,但我认为这并不重要)

我有这段代码:

var fileRequest = fileHandle.getFile(); //from indexedDB
fileRequest.onsuccess = function(event){

{...}
var file = event.target.result;
var url = window.URL.createObjectURL(file, {type : fileMimeType, autoRevoke : true});

//I did this with form and not with a href because:
//https://bugzilla.mozilla.org/show_bug.cgi?id=979227

var form = document.createElement('form');
form.action = url;
document.body.appendChild(form);
form.submit();

浏览器要求将此文件保存在下载文件夹中,一切似乎都正常但它总是提示此消息:

“在此页面上输入的信息将通过不安全的连接发送,并且可能被第三方读取。您确定要发送此信息吗?”

如果您单击“确定”,文件会被很好地保存,但是这个安全警告是用户想要在网页中阅读的最糟糕的信息,因此用户会害怕并逃跑。

createObjectURL 创建的 url 也是一个安全的 url,因为就像: Blob :https//blahblah

这个警告不会出现在 Chrome 中(使用他自己的文件系统方法)。

我需要帮助:(

最佳答案

我使用这段代码来避免 Firefox 中的安全警告

 var blobURL = URL.createObjectURL(some_blob);

var fr = document.createElement('iframe');
fr.frameBorder = 0;
fr.width = 1;
fr.height = 1;
document.body.appendChild(fr);

var doc = fr.contentDocument;
var form = doc.createElement('form');
form.action = blobURL;
doc.body.appendChild(form);
form.submit();
setTimeout(function(){
fr.parentNode.removeChild(fr);
}, 100);

关于javascript - createObjectURL blob url 在 Firefox 中不安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37154892/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com