考虑以下示例:
function previewFile(file) {
var reader = new FileReader();
reader.onloadend = function () {
console.log(reader.result);
}
reader.readAsDataURL(file);
}
Run Code Online (Sandbox Code Playgroud)
它指出:
instanceOfFileReader.readAsDataURL(BLOB);
blob:要从中读取的Blob或文件.
如何将本地文件URL 'file:///C:/path-to/root.png'传递给readAsDataURL()
是否FileReader()可以在Firefox的附加组件?
如何将本地(文件系统)URI转换为路径?
它可以用nsIIOService+ newURI()+ QueryInterface(Components.interfaces.nsIFileURL)+ 完成,file.path但这看起来很长.
有更短的方式吗?
这是一个示例代码:
var aFileURL = 'file:///C:/path-to-local-file/root.png';
var ios = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService);
var url = ios.newURI(aFileURL, null, null); // url is a nsIURI
// file is a nsIFile
var file = url.QueryInterface(Components.interfaces.nsIFileURL).file;
console.log(file.path); // "C:\path-to-local-file\root.png"
Run Code Online (Sandbox Code Playgroud)