3 html javascript html5-filesystem
我想允许用户拖动和上传目录和文件。
我知道我可以创造
<input type="file" multiple />
<!-- for files/multiple files upload-->
Run Code Online (Sandbox Code Playgroud)
和
<input type="file" directory mozDirectory webkitDirectory />
<!-- for directory uploads -->
Run Code Online (Sandbox Code Playgroud)
我尝试检测用户拖动项目时是否是目录或文件,并根据该情况设置目录属性,但事实证明 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);
Run Code Online (Sandbox Code Playgroud)
答案取自这里
| 归档时间: |
|
| 查看次数: |
10457 次 |
| 最近记录: |