gpt4 book ai didi

javascript - 使用一个输入 javascript 处理目录/文件上传

转载 作者:行者123 更新时间:2023-11-29 18:07:41 33 4
gpt4 key购买 nike

我想允许用户拖拽和上传目录和文件。

我知道我可以创造

<input type="file" multiple />
<!-- for files/multiple files upload-->

<input type="file" directory mozDirectory webkitDirectory />
<!-- for directory uploads -->

我尝试在用户拖动项目时检测它是否是目录或文件,并根据它设置目录属性,但结果是 javascript 不允许您检查。

我在很多网站上也看到用户可以将文件和目录拖在一起,甚至可以拖多个目录。

我怎样才能做到这一点?

最佳答案

Chrome >= 21 可以拖放文件夹

这是你需要的(没试过,但它可以给你想法):

function traverseFileTree(item, path) {
path = path || "";
if (item.isFile) {
// Get file
item.file(function(file) {
console.log("File:", path + file.name);
});
} else if (item.isDirectory) {
// Get folder contents
var dirReader = item.createReader();
dirReader.readEntries(function(entries) {
for (var i=0; i<entries.length; i++) {
traverseFileTree(entries[i], path + item.name + "/");
}
});
}
}

dropArea.addEventListener("drop", function(event) {
event.preventDefault();

var items = event.dataTransfer.items;
for (var i=0; i<items.length; i++) {
// webkitGetAsEntry is where the magic happens
var item = items[i].webkitGetAsEntry();
if (item) {
traverseFileTree(item);
}
}
}, false);

可以找到更多信息here

答案取自 here

关于javascript - 使用一个输入 javascript 处理目录/文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30049276/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com