我想做一个图片上传,并且本地预览功能,但是,IE7以后浏览器不支持从本地读取图片的功能,该如何解决本地预览功能,求大神解决

解决方案 »

  1.   

    浏览器是不能查看本地图片的,兄弟放弃吧,我之前也想这么干。除非你写一个ActiveX控件查看本地文件,而且只能用IE打开
      

  2.   

    Refer this:http://www.cnblogs.com/insus/archive/2012/11/13/2768951.html
      

  3.   


    但是,我在IE9下用你的方法,还是不行,浏览器还是不显示啊,只是一闪后,FileUpLoad里的地址没有了,但是图片没有了,前辈能不能帮忙想想,谢谢
      

  4.   


    例如我们是做企业应用的web程序,因此我们可以假设用户基于silverlight浏览应用程序。
      

  5.   

    不知道你是怎么读取的
    img的src支持file写法,这个不符合你的要求吗?例如<img src="file:\\C:\XX\XX.jpg" />
      

  6.   

    <input id="myfile" type="file" />
    <br />
    <img src="" alt="Image to be upload." />
    <div id="info"></div>
    <script type="text/javascript">
    var dFile = document.getElementById('myfile');
    var dImg = document.getElementsByTagName('img')[0];
    var dInfo = document.getElementById('info');
    dFile.onchange = function(){
    if(!dFile.value.match(/.jpg|.gif|.png|.bmp/i)){alert('File type must be: .jpg, .gif, .bmp or .png !');return;}
    if(dFile.files){
    dImg.src = dFile.files[0].getAsDataURL();
    alert(dImg.src);
    }else if(dFile.value.indexOf('\\') > -1 || dFile.value.indexOf('\/') > -1){
    dImg.src = dFile.value;
    alert(dImg.src);
    }
    }
    </script>
    这个兼容IE9 FF3 遨游等等之类的
      

  7.   

    我这也没上传呀,img的src是本地文件路径
      

  8.   

    http://www.cnblogs.com/slyzly/articles/2411940.html
    我总结的兼容性比较好的js本地图片预览,未上传到服务器上,但是不支持Safari,兼容性不是很好,只能将就着点用了,更好的兼容性是用flash来做预览.
      

  9.   

    上传到服务器的话,我觉得第一是服务器压力增大,还会产生垃圾文件,所以就将就着用js来预览了,flash我也不会。
      

  10.   

    本地是不支持浏览的,有些FLAHS在IE低版本中,可以支持,现在普通浏览不支持,出于安全的考虑,一般都是上传到服务器,再加载到本地,进行浏览的
      

  11.   

    http://hi.baidu.com/ershouxiaowei/item/1b4b2adf69c4d5db241f4032
      

  12.   

       <script type="text/javascript" language="javascript">
             function PreviewImg(imgFile) {
                 var imgDiv = document.getElementById("ShowPic");
                 imgDiv.style.width = "118px";
                 imgDiv.style.height = "127px";
                 imgDiv.style.filter =
            "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod = scale)";
                 imgDiv.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;
                 var showPicUrl = document.getElementById("showPicUrl");
                 showPicUrl.innerText = imgFile.value;
             }
         </script> <body>
         <form id="form1" runat="server">
         <input type="file" size="20" onchange="javascript:PreviewImg(this);" />
         <div id="ShowPic"></div>
         <input id="showPicUrl" type="hidden" />
         </form>
     </body>
      

  13.   


    Refer this:
    http://www.cnblogs.com/insus/archive/2012/11/14/2769650.html
      

  14.   

    同学,可以使用滤镜效果 实现的,刚花了点时间写了一下:
    这是html代码:
    <div id="imgPreview"  style='width:144px; height:80px;'>
                             <img id='img_browse' title="" src="" alt="" width="144" height="80" />
                             
                          </div>
    <asp:FileUpload ID="fupSynopsisPic" onchange='PreviewImage(this)' CssClass="normaltextinputclass" Width="320" runat="server" />下面是js代码:
    //图片本地预览
        function PreviewImage(imgFile)
        {
          var filextension=imgFile.value.substring(imgFile.value.lastIndexOf("."),imgFile.value.length);
          filextension=filextension.toLowerCase();
          if ((filextension!='.jpg')&&(filextension!='.gif')&&(filextension!='.jpeg')&&(filextension!='.png')&&(filextension!='.bmp'))
          {
              alert("对不起,系统仅支持标准格式的logo,请您调整格式后重新上传,谢谢 !");
              imgFile.focus();
          }
          else
          {
              var path;
              if(document.all)//IE
              {
                  imgFile.select();
                  path = document.selection.createRange().text;
                  document.getElementById("imgPreview").innerHTML="";
                  document.getElementById("imgPreview").style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizingMethod='scale',src=\"" + path + "\")";//使用滤镜效果   
              }
              else//FF
              {
                  path = imgFile.files[0].getAsDataURL();
                  document.getElementById("img_browse").src = path;
              }
          }
        }
      

  15.   


    你这个其实都已经把图片传到服务器上了,只不过没有保存而已。IE7以上的浏览器和FF都得更改浏览器设置才能取得文件的路径,所以使用滤镜的方法也有点不大现实chrome?这个真的无解,一点办法都没有
      

  16.   

    暑假的时候尝试实现这个功能,记得使用一个div+滤镜实现的。
      

  17.   

    我有一个 IE6 7 8,FF,chrome都测试过 由于公司的电脑系统都是XP IE9不知道行不行呢