zoukankan      html  css  js  c++  java
  • IE8/9 本地预览上传图片

    本地预览的意思是,在选择图片之后先不上传到服务器,而是由一个<img>标签来预览本地的图片,非 IE8/9 浏览器可以从<input type=“file”/>中获取到图片流,然后设置到<img src=“”>进行显示,但 IE8/9 浏览器只能获取到本地图片的绝对路径,并且设置 src 是无效的。

    解决上面问题的方式是采用 css 图片滤镜,示例代码:

    <!-- 要设置图片预览区域的大小 -->
    <p class="img-wrap">
        <img name="prevPic" id="prevPic" src="" />
        <input name="uploadImage" id="uploadImage" type="file" />
    </p>
    
    <script type="text/javascript">
        $('#uploadImage').change(function (e) {
            if (navigator.userAgent.indexOf('MSIE 8') >= 0 || navigator.userAgent.indexOf('MSIE 9') >= 0) {
                $(this).select();
                window.parent.document.body.focus();
                var realpath = document.selection.createRange().text;
                $(this).parent().css("filter", "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',src="" + realpath + "",sizingMethod=scale)");
            }
            else {
                var file = e.delegateTarget.files[0];
                var reader = new FileReader();
                var targetId = e.target.id;
                reader.readAsDataURL(file);
                reader.onload = function () {
                    var picString = reader.result;
                    $("#prevPic").attr({ "src": picString }).show();
                };
            }
        });
    </script>

    获取realpath是为了解决发布 IIS 之后,出现本地图片路径变成C:fakepathxxxx.jpg的问题。

  • 相关阅读:
    C语言程序设计第5堂作业
    C语言程序设计第4堂作业
    gets和fgets函数的区别
    编写一个程序实现strcpy函数的功能
    编写一个程序实现strcmp函数的功能
    编写一个程序实现strcat函数的功能
    11-1. 通讯录的录入与显示(10)
    11-0. 平面向量加法(10)
    10-4. 字符串循环左移(20)
    10-3. 字符串逆序(15)
  • 原文地址:https://www.cnblogs.com/jameslif/p/6019675.html
Copyright © 2011-2022 走看看