js实现前台多张图片上传及预览

1.上传图片时简单预览和删除功能。预览时,不需传后台,上传打开的窗口中每次只能选择一张图片,每张图片对应一个input,如果图片被删除,对应的input也需删除,不影响要传后台参数。注:为了方便用到jquery,窗口中能多选文件,删除时还不知道怎么改input。html:

<form action="/***/correct"  method='post' enctype='multipart/form-data' >
	<div  class='upimgcontent' style="margin:0px auto;width:990px;">
		<div class="fileinput-wrap">
		<input type="file" name="files" id="doc0" imgid="img0" style="width:100px;"
 			οnchange="javascript:setImagePreviews()" />
	</div>
 		<div id="dd" style="width:990px;"></div> 
	</div>
	<button type="submit">提交</button>
</form>


javascript:
var magId=0;
function setImagePreviews(){
	var docobj=document.getElementById("doc"+magId);
	var dd=document.getElementById("dd");
	var fileList=docobj.files;	
	for( var i=0;i<fileList.length;i++){
		magId++;
		$(dd).append("<div class='img-wrap' imgid='img"+(magId-1)+"'><img id='img"+(magId-1)+"'/><span class=' closeimg"+(magId-1)+" close'>×</span></div>");
		$(".fileinput-wrap [imgid=img"+(magId-1)+"]")[0].style.position="absolute";
		$(".fileinput-wrap [imgid=img"+(magId-1)+"]")[0].style.left="-10000px";		
		$(".fileinput-wrap").append('<input type="file" name="files" id="doc'+magId+'" imgid="img'+magId+'" style="width:100px;" οnchange="javascript:setImagePreviews()" />');		
		$(".closeimg"+(magId-1)).on("click",function(e){
			var id=$(this).parents(".img-wrap").attr("imgid");
			$(this).parent().remove();
			$(".fileinput-wrap input[imgid="+id+"]").remove();
		})
		var imgObjPreview=document.getElementById("img"+(magId-1));
		if(docobj.files&&docobj.files[i]){
			imgObjPreview.style.display="block";
			imgObjPreview.style.width="100px";
			imgObjPreview.style.height="120px";
			imgObjPreview.src=window.URL.createObjectURL(docobj.files[i]);
		}else{
			//IE
			docobj.select();
			var imgsrc=document.selection.createRange().text;
			var localImageId=document.getElementById("img"+(magId-1));
			localImageId.style.width="100px";
			localImageId.style.height="120px";
			try{
				localIamgeId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
				localIamgeId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src=imgsrc;
			}catch(e){
				alert("上传图片出错")
				return false;
			}
			imgObjPreview.style.display="none";
			document.selection.empty();
		}		
	}
	return true;
} 







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值