实时显示从file输入框中打开的图片C:fakepath路径问题

html代码:

<input id="file_upload" type="file" />
<div class="image_container">
    <img id="preview" style="height:130px;117px;border-0px;"/>
</div>

jquery代码:

$(function () {
    $("#file_upload").change(function () {
        var $file = $(this);
        var fileObj = $file[0];
        var windowURL = window.URL || window.webkitURL;
        var dataURL;
        var $img = $("#preview");

        if (fileObj && fileObj.files && fileObj.files[0]) {
            dataURL = windowURL.createObjectURL(fileObj.files[0]);
            $img.attr('src', dataURL);
        } else {
            dataURL = $file.val();
            var imgObj = document.getElementById("preview");
            // 两个坑:
            // 1、在设置filter属性时,元素必须已经存在在DOM树中,动态创建的Node,也需要在设置属性前加入到DOM中,先设置属性在加入,无效;
            // 2、src属性需要像下面的方式添加,上面的两种方式添加,无效;
            imgObj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
            imgObj.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = dataURL;

        }
    });
});

转自黄者之风

原文地址:https://www.cnblogs.com/Dong-Ge/p/7543603.html