前端上传文件夹并获取文件夹名称

Demo

效果图

复制粘贴即可看效果。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			#dropzone {
			  text-align: center;
			  width: 300px;
			  height: 100px;
			  margin: 10px;
			  padding: 10px;
			  border: 4px dashed red;
			  border-radius: 10px;
			}
			
			#boxtitle {
			  display: table-cell;
			  vertical-align: middle;
			  text-align: center;
			  color: black;
			  font: bold 2em "Arial", sans-serif;
			  width: 300px;
			  height: 100px;
			}
			
			body {
			  font: 14px "Arial", sans-serif;
			}
		</style>
	</head>
	<body>
		<p>Drag files and/or directories to the box below!</p>
		
		<div id="dropzone">
		  <div id="boxtitle">
		    Drop Files Here
		  </div>
		</div>
		
		<h2>Directory tree:</h2>
		
		<ul id="listing">
		</ul>
		
		<script>
			let dropzone = document.getElementById("dropzone");
			let listing = document.getElementById("listing");
			
			function scanFiles(item, container) {
				console.log(item);
			  let elem = document.createElement("li");
			  elem.innerHTML = item.name;
			  container.appendChild(elem);
			 
			 if (item.isDirectory) {
			    let directoryReader = item.createReader();
			    let directoryContainer = document.createElement("ul");
			    container.appendChild(directoryContainer);
			    directoryReader.readEntries(function(entries) {
			        entries.forEach(function(entry) {
			          scanFiles(entry, directoryContainer);
			      });
			    });
			  }
			}
			
			dropzone.addEventListener("dragover", function(event) {
			    event.preventDefault();
			}, false);
			
			dropzone.addEventListener("drop", function(event) {
				
			  console.log(event);
			  let items = event.dataTransfer.items;
			
			  event.preventDefault();
			  listing.innerHTML = "";
			 
			  for (let i=0; i<items.length; i++) {
			    let item = items[i].webkitGetAsEntry();
			    
			    if (item) {
			        scanFiles(item, listing);
			    }
			  }
			}, false);
		</script>
	</body>
</html>

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值