我目前正在通过以下方式加载已删除的文件:
var files = e.dataTransfer.items;
for (var i = 0; i < files.length; i++) {
var file = files[i]; //typeof is 'DataTransferItem'
var url = URL.createObjectURL(file);
}
这为我提供了对象url,然后可以将其放入音乐播放器中。但是,当遍历输入的文件夹时:
var reader = entry.createReader();
reader.readEntries(function (res) {
res.forEach(function (entry) {
console.log('The entry:', entry);
console.log('The url:', JSON.stringify(entry.toURL()));
});
});
我得到的文件类型FileEntry
。根据这个我能做到file.toURL()
和使用,而不是一个对象的url。这确实返回了一个空字符串。这似乎是有原因的,但是我不知道该如何解决。我看到了有关Blob URL的信息,但我不知道该如何工作。示例尝试将文件和文件夹拖到输出屏幕,然后自己查看
我如何解决它:
从具有typeof的条目开始FileEntry
,我们可以这样做.file(callback)
,其中回调中的第一个参数是type File
,然后可以从以下项中创建一个objectURL:
var reader = entry.createReader();
reader.readEntries(function (res) {
res.forEach(function (entry) {
entry.file(function(file){ //this does the trick
var obj = URL.createObjectURL(file);
}
});
});
非常感谢dandavis,他为我提供了他的JavaScript代码和大概的行,以便我自己去寻找它;)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句