javascript - 对象文件名在 Firefox 上包含 ':' 路径分隔符
问题描述
我正在开发一个 Angular 6 项目,我在 MacOS High Sierra 上遇到了 Firefox (63.0) 的问题。
在某些时候,我从我的资产中加载一个文件作为 File 对象。稍后我检索文件名属性。在 Chrome 上,文件名使用斜杠 (/) 作为路径分隔符,在 Firefox 上,它使用冒号 (:) 作为路径分隔符。
文件加载如下:
- 执行 HTTP GET 以将资源作为 Blob 获取;
- Blob 使用: 转换为文件
new File([blob], fileName)
,其中 fileName 是使用斜杠表示文件路径的字符串(例如fileName = 'path/to/my/file.txt'
:)
通过运行以下命令,我已经能够在控制台中重现该错误:
var blob = new Blob();
var file = new File([blob], 'path/to/my/file.txt');
生成的对象在 Chrome 和 Firefox 上是不同的:
我的问题是:
这是 File 构造函数根据浏览器以不同方式转换文件名的正常行为吗?
如果是,我应该如何处理这种行为以防止我的文件名在不同的浏览器上有不同的路径分隔符?