我在百度找了好几个,可是有的浏览器就显示不了,比如:IE7、FF、Opera都不行,我在搜狗最新版测试就可以显示,调到兼容模式就不行了,我用的代如下:
 <%--  <script type="text/javascript">
     var allowExt = ['jpg', 'gif', 'bmp', 'png', 'jpeg'];  
     var preivew = function(file, container){  
         try{  
            var pic =  new Picture(file, container);  
         }catch(e){  
             alert(e);  
         }  
     }  
     //缩略图类定义   
     var Picture  = function(file, container){  
         var height = 0,   
             widht  = 0,   
             ext    = '',  
             size   = 0,  
             name   = '',  
             path   =  '';  
         var self   = this;  
         if(file){   
             name = file.value;  
             if (window.navigator.userAgent.indexOf("MSIE")>=1){   
                 file.select();   
                 path = document.selection.createRange().text;   
             }else if(window.navigator.userAgent.indexOf("Firefox")>=1){   
                 if(file.files){   
                     path =  file.files.item(0).getAsDataURL();   
                 }else{  
                     path = file.value;  
                 }  
             }   
         }else{  
             throw "bad file";  
         }   
  
  
         ext = name.substr(name.lastIndexOf("."), name.length);  
  
         if(container.tagName.toLowerCase() != 'img'){  
             throw "container is not a valid img label";  
             container.visibility = 'hidden';  
         }  
         container.src = path;  
         container.alt = name;  
         container.style.visibility = 'visible';  
         height = container.height;  
         widht  = container.widht;  
         size   = container.fileSize;  
  
  
         this.get = function(name){  
             return self[name];  
         }  
  
         this.isValid = function(){  
             if(allowExt.indexOf(self.ext) !== -1){  
                 throw 'the ext is not allowed to upload';  
                 return false;  
             }  
         }  
     }  
</script>  --%>
<form id="form1" runat="server">
   <div class='previewDemo'>  
      
    <input id="file" type="file" onchange="preivew(this, document.getElementById('img'));">  
    <img id="img"  style="visibility:hidden" mce_style="visibility:hidden" height="100px" width="100px">  
</div>  </form>  你们帮我看下是不是改哪里就可以兼容了,或者你有兼容的代码就分享下,谢谢各位大侠了。

解决方案 »

  1.   

    到目前为止,只有IE和FF可以预览本地图片,其中IE6是最方便,IE7以上的浏览器都得更改浏览器设置才能取到文件路径和预览本地图片。chrome、safari、opera,遨游3这些浏览器你就不用尝试了,这个是根本不可能的,除非你使用swf
    在火狐7.0以下版本中使用如下代码获取上传图片全路径:obj.files.item(0).getAsDataURL(),obj为文件对象。但是在7.0以上的版本中会报错,若使用 window.URL.createObjectURL(obj.files.item(0)) 即可解决。
      

  2.   

    选择图片,window 系统选择框就可以预览要上传的图片。程序应该显示上传成功后的,服务器端图片。
    客户端图片,完全没必要。
      

  3.   

    本地这样是不符合安全标准的,不然也不会这么麻烦。你总不能以个别例外代替绝大多数的情况吧。
    现在AJAX这么方便不用,真是浪费。传到服务器取服务器上的就行了。