批量预览本地图片
<!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; } |