我正在处理Angular 6项目,并且在MacOS High Sierra上遇到了Firefox(63.0)问题。
有时,我从资产中加载一个文件作为File对象。稍后,我检索文件名属性。在Chrome上,文件名使用斜杠(/)作为路径分隔符,在Firefox上,文件名使用冒号(:)作为路径分隔符。
文件加载如下:
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构造函数的正常行为是根据浏览器来不同地转换文件名吗?
如果是,我应该如何处理此行为以防止我的文件名在不同的浏览器上具有不同的路径分隔符?