没有Chrome应用中的保存对话框保存文件

 xy278372898162 发布于 2023-02-07 15:30

在我的Chrome应用程序中,我正在将一些数据写入文件.我在Storage API下的官方网站上使用了以下代码

chrome.fileSystem.chooseEntry({type: 'saveFile'}, function(writableFileEntry) {
writableFileEntry.createWriter(function(writer) {
  writer.onerror = errorHandler;
  writer.onwriteend = function(e) {
    console.log('write complete');
  };
  writer.write(new Blob(['1234567890'], {type: 'text/plain'}));  
}, errorHandler);
});

现在我需要避免弹出保存对话框,并将此文件保存在预定义的位置.

这可能吗?

1 个回答
  • 如果您想要持久数据,但又不想使用本地计算机上的数据位置来打扰用户,您有以下几种选择:

    本地存储

    IndexedDB的

    HTML5文件API

    chrome.storage

    chrome.storage.sync

    chrome.syncFileSystem

    这些都不会为您提供用户可以访问的真实文件.如果用户(除了您自己的应用程序之外)需要能够访问您编写的文件,则需要询问用户将文件放在何处.正如Cerbrus在你的问题的评论中所说的那样,默默地将文件放在用户机器上的某个地方将是一个安全问题.

    Chrome 31中的新功能是chrome.fileSystem.retainEntry.使用此API,您的应用程序将保留在应用程序重新启动时保留大量fileEntries(包括目录)的功能,这样您就不必一直指责用户选择文件位置.我的理解是,允许用户选择哪些位置存在限制,因此恶意应用无法指示用户指示Chrome覆盖系统文件.

    2023-02-07 15:32 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有