DOMString-URL或base64展示图片(拖拉和获取 --多选)

本文介绍了一个利用HTML5的拖放API和FileReader API实现的图片上传功能,支持多选和拖拽上传图片,并使用base64编码在页面上预览图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DOMString-URL或base64展示图片(拖拉和获取 --多选)

直接上代码

<title>OSS</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<style>
	#box{
		width:500px;
		height:500px;
		background-color: #cccccc;
	}
	#box img{
		widht: 150px;
		height: 150px;
	}
</style>
<div id="box">
	<h1>施主,请往里拖图片~</h1>
</div>
<input type="file" id="file"  multiple />
<script type="text/javascript">
	window.onload = function(){
		let inputElement = document.getElementById("file");
		let dropbox = document.getElementById("box");
		inputElement.addEventListener("change", handleFiles , false);
		function handleFiles(fileList, isbox = true) {
			if(isbox){
				fileList = fileList.target.files;
			}
			console.log(fileList);
		    for (let i = 0; i < fileList.length; i++) {
			    let  img = document.createElement("img"); //let作用域问题很重要
				dropbox.appendChild(img);
			    /*img.src = window.URL.createObjectURL(fileList[i]); //DOMstring-URL
			    img.onload = function(){
				    window.URL.revokeObjectURL(this.src);
			    }*/
			    var reader = new FileReader();
				reader.onload = function(e){
					img.src = e.target.result; //base64
				}
				reader.readAsDataURL(fileList[i]);
			}
		}
		dropbox.addEventListener("dragenter",function(e){
			e.stopPropagation();
			e.preventDefault();
		},false);
		dropbox.addEventListener("dragover", function(e){
			e.stopPropagation();
			e.preventDefault();
		}, false);
		dropbox.addEventListener("drop", function(e){
			e.stopPropagation();
			e.preventDefault();
			var dt = e.dataTransfer;
			var files = dt.files;
			handleFiles(files,false);
		}, false);
	}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值