gpt4 book ai didi

javascript - 从 Blob 保存到本地文件

转载 作者:可可西里 更新时间:2023-11-01 02:01:56 24 4
gpt4 key购买 nike

我有一个棘手的问题要问你,我现在已经为这个问题苦苦思索了一段时间。

我正在寻找一种解决方案,我可以在其中将文件保存到用户计算机,而无需本地存储,因为本地存储有 5MB 的限制。我想要“保存到文件”对话框,但我想保存的数据只能在 javascript 中使用,我想防止将数据发送回服务器然后再次发送。

用例是,我正在处理的服务正在保存用户数据的压缩和加密 block ,因此服务器不知道这些 block 中有什么,并且通过将数据发送回服务器,这将导致 4流量的两倍并且服务器正在接收未加密的数据,这将使整个加密无用。

我找到了一个 javascript 函数,可以通过“保存到文件”-对话框将数据保存到用户计算机,但是这方面的工作已经停止并且没有得到完全支持。是这个:http://www.w3.org/TR/file-writer-api/

既然我没有 window.saveAs,那么在不将所有内容发送到服务器的情况下从 Blob 对象保存数据的方法是什么?

如果我能得到提示,搜索什么,那就太好了。

我知道这行得通,因为 MEGA 正在这样做,但我想要我自己的解决方案:)

最佳答案

您最好的选择是使用 blob url(这是一个指向浏览器内存中的对象的特殊 url):

var myBlob = ...;
var blobUrl = URL.createObjectURL(myBlob);

现在您可以选择简单地重定向到此 url (window.location.replace(blobUrl)),或创建指向它的链接。第二种解决方案允许您指定默认文件名:

var link = document.createElement("a"); // Or maybe get it from the current document
link.href = blobUrl;
link.download = "aDefaultFileName.txt";
link.innerHTML = "Click here to download the file";
document.body.appendChild(link); // Or append it whereever you want

关于javascript - 从 Blob 保存到本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25547475/

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