javascript - chrome.downloads.download 中文件名的问题字符

标签 javascript google-chrome-extension

在函数 chrome.downloads.download 的文件名参数中使用某些字符开始下载时导致“文件名无效”错误。我在文档中找不到任何信息并替换例如:使用 %3A 或 : ;不起作用。

有问题的字符是:

: " ? ~ < > * |

这是一个示例,您可以在具有下载权限的任何扩展程序的后台页面控制台中使用。
chrome.downloads.download(
    {url: "http://i.imgur.com/3cWNMt3.webm",
     filename: "title:subtitle.webm"},
    function (downloadId) {
        if (downloadId===undefined)
            console.log(chrome.runtime.lastError);
        else
            console.log("Ok");
});

有没有办法使用这些有问题的字符?

编辑:是否有 chrome.downloads.download 不支持的字符列表?

编辑2:换句话说。用户可以在 Chrome (Linux) 中手动下载文件,并在下载对话框中将其命名:
title:subtitle.extension

我想在我的扩展中做同样的事情。

此文件名只是一个示例,文件名会根据网页和一些用户生成的规则自动生成。

最佳答案

Is there a way to use these problematic characters?



不,那将是一个无效的文件名。

究竟什么是无效的因操作系统而异。 这是 full ruleset for Windows .

一个常见的策略是用允许的东西替换字符;例如,_
另见 this question .

关于javascript - chrome.downloads.download 中文件名的问题字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30960190/

相关文章:

javascript - 如何获取文件属性并从 ionic 4 上传文件?

google-chrome-extension - 是否有从 chrome 扩展获取桌面事件应用程序名称的解决方案?

javascript - 停止在 jQuery 中缓存图像

javascript - 将工厂/服务对象隔离到单个元素的指令

javascript - 具有多个参数的函数调用 2 种方式

google-chrome - Google Chrome Native Client 与插件或扩展程序的比较

javascript - 为什么从 Google Chrome 扩展中的 JavaScript 注入(inject)中删除了脚本标签?

javascript - Chrome 扩展 : html has external javascript

javascript - 通过 chrome 扩展选项有条件地注入(inject) CSS

javascript - 可折叠菜单变体