jsp中点击图片弹出文件上传界面及实现预览实例详解
jsp中点击图片弹出文件上传界面及实现预览实例详解
花了两天时间琢磨一下图片预览的功能
任务需求如下:
1:jsp页面中有一个图片(pic_1)
2:点击图片弹出类似于资源管理器的界面
3:选择完某一个图片之后在pic_1处预览
我在IE8上试验下面这段代码,可以实现上述功能,没有在别的浏览器中测试,如果各位朋友知道多种浏览器的支持方法,请赐教,共同学习,谢谢。
Inserttitlehere functiontempClick(){ /** *火狐浏览器实现点击图片出现文件上传界面 *vara=document.createEvent("MouseEvents"); *a.initEvent("click",true,true); *document.getElementById("upload_main_img").dispatchEvent(a); */ //IE浏览器实现点击图片出现文件上传界面 document.getElementById('main_img').click();//调用main_img的onclick事件 } /** *预览图片 *@paramobj *@returns{Boolean} */ functionPreviewImg(obj){ varnewPreview=document.getElementById("img_2"); varimgPath=getPath(obj); alert(imgPath); if(!obj.value.match(/.jpg|.gif|.png|.bmp/i)){ alert("图片格式错误!"); returnfalse; } newPreview.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"; newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src=imgPath; } /** *得到图片绝对路径 *@paramobj *@returns */ functiongetPath(obj){ if(obj){ if(navigator.userAgent.indexOf("MSIE")>0){ obj.select(); //IE下取得图片的本地路径 returndocument.selection.createRange().text; }elseif(isFirefox=navigator.userAgent.indexOf("Firefox")>0){ if(obj.files){//Firefox下取得的是图片的数据 returnfiles.item(0).getAsDataURL(); } returnobj.value; } returnobj.value; } }
简单的对代码做一下讲解:
inputtype="file" 这个元素我试过让style隐藏(style=“display:none”),这样就不能或得到绝对路径,而是fakepath,为了不让它显示出来就让他100%的透明,下面有一个div,id为img_2,这个div是页面初始图片,点击这个图片调用inputtype="file"中的方法,实现此功能。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!