m0_67644151 2023-02-17 18:05 采纳率: 71.4%
浏览 46
已结题

【已废】【无用】新版chrome如何从html不以通过下载文件的方式保存指定文件名的文件到指定目录

我看了一些叙述,提到在Chrome 83更新以后,可以使用某个API直接读写本地文件,但我没找到直接能向指定目录写入指定文件名的方法。所有需要写入的内容存在一个数组里,每一个元素写到一行就可以,输出路径为当前所用的html的路径(这个html只进行本地运算,不是在线连接的网页),文件名TempFile(无文件扩展名)(这个目录已经存在)。

  • 写回答

1条回答 默认 最新

  • 堀越二郎984 2023-02-17 18:25
    关注

    Chrome 83之后引入的API是File System Access API,可以让Web应用程序以受控方式访问本地文件系统。使用该API,可以通过用户选择文件保存对话框或使用默认的下载目录来保存文件,但无法直接指定保存的路径和文件名。

    对于你的需求,你可以使用Blob对象来创建一个文件并写入内容,然后使用Download API将其下载到本地。以下是示例代码:

    // 将需要写入的内容存入数组
    const content = ["line 1", "line 2", "line 3"];
    
    // 将数组内容拼接为字符串
    const text = content.join('\n');
    
    // 创建Blob对象
    const blob = new Blob([text], {type: 'text/plain'});
    
    // 使用Download API下载文件
    const a = document.createElement('a');
    a.href = URL.createObjectURL(blob);
    a.download = 'TempFile.txt'; // 指定文件名
    a.style.display = 'none';
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
    

    这将创建一个名为TempFile.txt的文本文件,并将其下载到用户默认的下载目录中。如果需要将文件保存到其他目录,可以使用webkitRelativePath属性来指定路径,但需要手动选择目录并授权访问。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月18日
  • 已采纳回答 2月18日
  • 修改了问题 2月18日
  • 修改了问题 2月18日
  • 展开全部

悬赏问题

  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源