批量预览本地图片

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>get file input full path</title>
<style>
.case_photo_area_small {
    width: 770px;
        overflow:hidden;
}

.small_photo {
    border-top: 2px #BFBFBF solid;
    border-right: 2px #BFBFBF solid;
    border-left: 2px #BFBFBF solid;
    border-bottom: 2px #BFBFBF solid;
}

.small_photo_selected {
    border-top: 2px #FFCC00 solid;
    border-right: 2px #FFCC00 solid;
    border-left: 2px #FFCC00 solid;
    border-bottom: 2px #FFCC00 solid;
}
</style>
<script type="text/javascript" language="javascript"
    src="native_picture.js"></script>
</head>
<body>
    <table cellpadding="0" cellspacing="0">
        <tbody id="_container">
            <tr>
                <td><input type="file" id="FileUpload1" name="FileUploads"
                    onchange="getFullPath(this,'FileUpload1',true);" /> <a
                    href="javascript:void(0);" onclick="addFile()">添加</a></td>
            </tr>
        </tbody>
    </table>
    <table border=0 cellspacing=0 cellpadding=0 style="display: none;"
        id="tableImg">
        <tr>
            <td><img id="beforeX" src="images/left.png"></td>
            <td>
                <div class="case_photo_area_small" id="showareX">
                    <table border=0 cellspacing="1px" cellpadding=0>
                        <tr id="_newPreview"></tr>
                    </table>
                </div>
            </td>
            <td><img id="nextX" src="images/right.png"></td>
            <td><a href="javascript:void(0);" id="deleThisImg">【删除图片】 </a></td>
        </tr>
    </table>
</body>
</html>
//native_picture.js
var id = 0;
function addFile() {
	var tab = document.getElementById("_container");
	var row = document.createElement("tr");
	var cell = document.createElement("td");
	var f = document.createElement("input");
	f.setAttribute("type", "file");
	f.setAttribute("id", "FileUpload" + (id + 2));
	f.setAttribute("name", "FileUploads");
	f.setAttribute("contentEditable", false);
	cell.appendChild(f);

	var btndele = document.createElement("a");
	btndele.setAttribute("href", "javascript:void(0)");
	btndele.setAttribute("class", "btn2");
	btndele.innerHTML = "<span class='toolbar_icon toolbar_icon_07'></span>删除";
	btndele.setAttribute("value", "删除");
	btndele.setAttribute("Id", "del" + id);
	btndele.onclick = function() {
		// 删除行
		getFullPath(this.parentNode.childNodes[0],
				this.parentNode.childNodes[0].getAttribute("id"), false);
		while (true) {
			if (btndele.tagName == "TD") {
				break;
			} else {
				btndele = btndele.parentNode;
				btndele.parentNode.removeChild(btndele);
			}
		}

	};
	f.onchange = function() {
		getFullPath(this, this.getAttribute("id"), true);
	};
	cell.appendChild(btndele);
	row.appendChild(cell);
	tab.appendChild(row);

	id++;

}
var goIndex = 0;
var countx = 0;
function getFullPath(obj, fileId, falg) {
	//obj:file对象;fileId:"FileUpload"+id; falg:ture 添加或更新图片,false 删除图片 
	
	var gindex = fileId.substring(10); //取得与file之对应图片id号
	var divImg = document.getElementById("divImg" + gindex);   // 判断是否含有此id图片
	var newPreview = document.getElementById("_newPreview");  //指定TR添加节点
	var newPreviewSize = newPreview.childNodes.length;  //TR已添加TD数
	var index =0;     //获得图片索引
	if(newPreviewSize>0){
		index=getIndex();
	}

	
	var patn = /.jpg$|.jpeg$|.bmp$/i;   //正则表达式判断上传文件
	countx = newPreviewSize;
	
	if (patn.test(obj.value)) {
		if (falg && divImg == null) {
			var cell = document.createElement("td");
			var g = document.createElement("div");
			g.setAttribute("id", "divImg" + gindex);
			g.style.width = "90px";
			g.style.height = "90px";
			//指定位置添加图片
			if (!newPreview.hasChildNodes()||newPreviewSize==index) {
				cell.appendChild(g);
				newPreview.appendChild(cell);
				goIndex=newPreviewSize-1;
			} else {
					cell.appendChild(g);
					newPreview.insertBefore(cell, newPreview.childNodes[index]);
					goIndex=index-1;
			}
            iephoto(g);	
			countx++;
			nextX();
		} else if (falg) {
            iephoto(divImg);
        	if(newPreviewSize==1){
        		goIndex=0;
        	}else{
        		goIndex=index+1;
        	}
			beforeX();
		} else {
			delephoto();
		}

	} else if (divImg != null) {
		delephoto();
	}else{
		return false;
	}
	styleDivImg();
	showhidden();
	
	document.getElementById("beforeX").onclick=function(){
		beforeX();
		styleDivImg();
	};
    document.getElementById("nextX").onclick=function(){
		nextX();
		styleDivImg();
	};
	
	// 删除选中的图片
	 document.getElementById("deleThisImg").onclick=function(){
			var imgNow =newPreview.childNodes[goIndex].getElementsByTagName("div")[0];
			var  buttonIndex=parseInt(imgNow.getAttribute("id").substring(6));
			var buttonNow =document.getElementById("FileUpload"+buttonIndex);
		 if(imgNow&&buttonNow){
			 imgNow.parentNode.parentNode.removeChild(imgNow.parentNode);
			 //删除button,若为第一个就清空值
			 if(buttonIndex==1){
				 //buttonNow.select();   
				 //document.execCommand("delete"); 
				 buttonNow.outerHTML=buttonNow.outerHTML;
			 }else{
					while (true) {
						if (buttonNow.tagName == "TD") {
						break;
						} else {
							buttonNow =buttonNow.parentNode;
							buttonNow.parentNode.removeChild(buttonNow);
					  }
				  }
			 }
			     countx--;
			     beforeX();	
			     styleDivImg();
				 showhidden();
				
		 }
		
	 };
//图片样式
function styleDivImg(){
	for(var j=0;j<countx;j++){ 
		if(j==goIndex)
			newPreview.childNodes[j].className="small_photo_selected";
		else
			newPreview.childNodes[j].className="small_photo";
	}
}

//IE浏览器浏览本地DIV图片路径
function iephoto(ie){
	      obj.select();   
		ie.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);";
		ie.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = document.selection.createRange().text;
}


//删除图片
function delephoto(){	
	if(newPreviewSize==1){
		goIndex=1;
	}else{
		goIndex= index;
	}
	countx--;
	
	divImg.parentNode.parentNode.removeChild(divImg.parentNode);
	beforeX();	
}	
//获取索引
function getIndex(){
		var arr = new Array();
		var indexg =0;
		  // document.getElementById("divImg" + jj);
	   for (var jj = 0; jj < newPreviewSize; jj++) {
		   var gchild = newPreview.childNodes[jj].getElementsByTagName("div")[0];    
			arr[jj] = parseInt(gchild.getAttribute("id").substring(6));
		}
	    if(divImg==null&&falg){
		arr[newPreviewSize] = gindex;
	    }
	    //对数字排序
	    function sortNumber(a,b)
	    {
	    return a - b;
	    }
		arr = arr.sort(sortNumber);
        
		for(var jj=0;jj<arr.length;jj++){
			if(arr[jj]==gindex){
				indexg=jj;
				break;
			}
		}
		return indexg;
	}

}
//显示隐藏
function showhidden(){
	var tableImg = document.getElementById("tableImg");
	if(countx==0){
		tableImg.style.display="none";
	}else{
		tableImg.style.display="block";
	}
}
//上一个
function beforeX() {
	if (goIndex <= 0) {
		goIndex = countx-1;
	} else {
		goIndex--;
	}
	document.getElementById("showareX").scrollLeft = (93) * goIndex;
}
//下一个
function nextX() {
	if (goIndex+1>=countx) {
		goIndex = 0;
	} else {
		goIndex++;
	}
	document.getElementById("showareX").scrollLeft = (93) * goIndex;
}

 

posted @ 2013-04-02 17:18  热雪  阅读(260)  评论(0编辑  收藏  举报