当然可以。HTML5 提供了一种简单的方法来实现文件拖放功能,而且它还支持文件夹拖放。以下是一个简单的示例代码:
<!DOCTYPE html>
<html>
<head><style>
.drop-zone {
border: 2px dashed #aaa;
width: 300px;
height: 200px;
text-align: center;
line-height: 200px;
}
</style>
</head>
<body>
<div class="drop-zone" ondrop="dropHandler(event)" ondragover="dragOverHandler(event)">
拖动文件夹到这里
</div><script>
function dragOverHandler(e) {
e.preventDefault();
}
function dropHandler(e) {
e.preventDefault();
const items = e.dataTransfer.items;
for (let i = 0, len = items.length; i < len; i++) {
const item = items[i];
if (item.webkitGetAsEntry) {
const entry = item.webkitGetAsEntry();
if (entry.isDirectory) {
readDirectory(entry);
} else if (entry.isFile) {
console.log('File:', entry.name);
}
}
}
}
function readDirectory(directory) {
const reader = directory.createReader();
reader.readEntries(function(entries) {
entries.forEach(function(entry) {
if (entry.isDirectory) {
readDirectory(entry);
} else if (entry.isFile) {
console.log('File:', entry.name);
}
});
});
}
</script>
</body>
</html>
这个示例代码创建了一个可以拖放文件夹的区域,当用户拖动文件夹到这个区域时,它会递归地读取文件夹中的所有文件和子文件夹,并在控制台中输出它们的名称。
需要注意的是,由于浏览器安全限制,这个功能只能在本地运行的网页中使用,不能在远程服务器上使用。此外,目前并非所有浏览器都支持文件夹拖放功能,只有一些最新版本的浏览器支持。
领取专属 10元无门槛券
手把手带您无忧上云