【发布时间】:2017-12-21 13:51:41
【问题描述】:
在删除文件并访问这些文件的信息时,使用
let files= e.dataTransfer.files;
您可以检查文件大小 (https://developer.mozilla.org/en-US/docs/Web/API/File)。但是,如果您使用较新的(以及据我所知的替代品)
let items = e.dataTransfer.items;
那么就没有办法获取文件大小(https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items)了。
哪种方法是知道被删除文件大小的正确方法?
答案:通过 .getAsFile() 访问文件
但是,读取目录时如何做到这一点?看代码
let items = e.dataTransfer.items;
for (let i=0; i < items.length; i++) {
let item = items[i].webkitGetAsEntry();
if (item && item.isFile)
console.log(items[i].getAsFile()); // HERE IT WORKS
else if (item && item.isDirectory) {
item.createReader().readEntries(function(entries) {
for (let j=0; j<entries.length; j++)
see_file(entries[j].getAsFile()); // HERE IT DOES NOT WORK
});
}
}
【问题讨论】:
-
你的问题的答案是什么“知道被删除文件的大小的正确方法是什么?”不包括在问题本身中“当删除文件时并使用
let files= e.dataTransfer.files;访问这些文件的信息,您可以检查文件大小”?使用event.dataTransfer.files有什么问题? -
从我所读到的, .files 似乎已被弃用,取而代之的是 .items (?)
-
你能提供链接到你读过的
.files被弃用的地方吗? -
“但是,读取目录时如何做到这一点?” 您更新后的查询的解决方案可以在此问题的答案How to upload and list directories at firefox and chrome/chromium using change and drop events 中找到
-
我正在阅读这个问题,但即使这个问题包含在另一个问题中,它也会回答许多其他问题,这使得这个问题的答案在那里非常模糊。也许从那里提取问题并在此处提供它会很有用。
标签: javascript html drag-and-drop