dadada / index.html
multimodalart's picture
Update index.html
aa2eedb
raw
history blame
1.66 kB
<!DOCTYPE html>
<html>
<head>
<title>Drag and Drop Demo</title>
<style>
#drop_zone {
width: 300px;
height: 200px;
border: 2px dashed #aaa;
line-height: 200px;
text-align: center;
}
</style>
</head>
<body>
<div id="drop_zone">Drop files or folders here</div>
<ul id="file_list"></ul>
<input type="file" id="fileInput" multiple />
<input type="file" id="dirInput" webkitdirectory="" />
<script>
let dropZone = document.getElementById('drop_zone');
let fileList = document.getElementById('file_list');
dropZone.ondragover = function (event) {
event.preventDefault();
this.style.backgroundColor = '#ccc';
};
dropZone.ondrop = function (event) {
event.preventDefault();
this.style.backgroundColor = '#fff';
let items = event.dataTransfer.items;
for (let i = 0; i < items.length; i++) {
let item = items[i].webkitGetAsEntry();
if (item) {
traverseFileTree(item);
}
}
};
function traverseFileTree(item, path = '') {
if (item.isFile) {
// Get file
item.file(function(file) {
let listItem = document.createElement('li');
listItem.textContent = path + file.name;
fileList.appendChild(listItem);
});
} else if (item.isDirectory) {
// Get folder contents
let dirReader = item.createReader();
dirReader.readEntries(function(entries) {
for (let i=0; i<entries.length; i++) {
traverseFileTree(entries[i], path + item.name + "/");
}
});
}
}
</script>
</body>
</html>