gongmingwind 发表于 2013-1-29 11:48:58

本地上传预览图片

要实现在本地选择图片后,即可进行预览功能,总体来说有两种方法:

方法1、使用AJax上传组件,选择文件后自动通过AJax将文件上传到服务器中,然后返回图片在服务器的地址

好处:这种方法不存在浏览器的兼容问题
缺点:对服务器的压力比较大


方法2:在本地使用JS针对不同的浏览器进行操作

好处:速度快
缺点:要处理跨浏览器的问题

我重点说下方法2:
<img>元素:
<table style="border: 0px; width: 400px;"><tr><td align="center"><img id="disImage"style="display: none; filter: progid : DXImageTransform . Microsoft . AlphaImageLoader(sizingMethod = scale);"width="106" height="106"src="${contextPath}/admin/commonlink/pic/blank.gif" /></td></tr></table>

<file>元素:
<input type="file"onchange="handler()"/>


handler()函数:
var picPath   = getPath(document.getElementById(picName));         if(this.getValue()==""){                                        document.getElementById("disImage").style.display="none";      }else{                               document.getElementById('disImage').src = picPath;             document.getElementById("disImage").style.display="block";      }

获得文件路径的函数:针对不同的浏览器进行处理
function getPath(obj){         if(obj){               //ie               if (window.navigator.userAgent.indexOf("MSIE")>=1){                   obj.select();                   // IE下取得图片的本地路径                   return document.selection.createRange().text;               }else if(window.navigator.userAgent.indexOf("Firefox")>=1){                  //firefox                if(obj.files){                   // Firefox下取得的是图片的数据                   return obj.files.item(0).getAsDataURL();               }               return obj.value;               }               return obj.value;         }      }
页: [1]
查看完整版本: 本地上传预览图片