7

Image preview in upload image section in my site is not working in IE8+ browsers. But Working fine in IE7 and IE6. I am using this below code for image preview functionality. JS:

var loadImageFile = (function () {
    if (window.FileReader) {
        var oPreviewImg = null, oFReader = new window.FileReader(),
            rFilter = /^(?:image\/bmp|image\/cis\-cod|image\/gif|image\/ief|image\/jpeg|image\/jpeg|image\/jpeg|image\/pipeg|image\/png|image\/svg\+xml|image\/tiff|image\/x\-cmu\-raster|image\/x\-cmx|image\/x\-icon|image\/x\-portable\-anymap|image\/x\-portable\-bitmap|image\/x\-portable\-graymap|image\/x\-portable\-pixmap|image\/x\-rgb|image\/x\-xbitmap|image\/x\-xpixmap|image\/x\-xwindowdump)$/i;

        oFReader.onload = function (oFREvent) {
            if (!oPreviewImg) {
                var newPreview = document.getElementById("imagePreview");
                oPreviewImg = new Image();
                oPreviewImg.style.width = (newPreview.offsetWidth).toString() + "px";
                oPreviewImg.style.height = (newPreview.offsetHeight).toString() + "px";
                newPreview.appendChild(oPreviewImg);
            }
            oPreviewImg.src = oFREvent.target.result;
        };

        return function () {
            var aFiles = document.getElementById("imageInput").files;
            if (aFiles.length === 0) { return; }
            if (!rFilter.test(aFiles[0].type)) { alert("You must select a valid image file!"); return; }
            oFReader.readAsDataURL(aFiles[0]);
        }

    }
    if (navigator.appName === "Microsoft Internet Explorer") {
        return function () {
            document.getElementById("imagePreview").filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = document.getElementById("imageInput").value;

        }
    }
})();

CSS Style:

#imagePreview {
    width: 160px;
    height: 120px;
    float: right;
    filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);
}
</style>

HTML:

<html>
    <body>
        <div id="imagePreview"></div>

        <form name="uploadForm">
            <p><input id="imageInput" type="file" name="myPhoto" onchange="loadImageFile();"><br>
            <input type="submit" value="Send"></p>
        </form>

    </body>
</html>

This code runs in IE 6 and IE7 but not runs in IE8+. Anyone knows what is the issue in above code. Running example link: https://developer.mozilla.org/files/3699/crossbrowser_image_preview.html

3
  • Whats the point of anonymous function if you are assigning it to a variable? Commented Dec 11, 2012 at 7:22
  • possible duplicate of IE8 ignores "filter" CSS styles Commented Jan 1, 2013 at 18:55
  • is it something that needs to be imported in order to work in IE7 those filters " .filters.item("DXImageTransform.Microsoft.AlphaImageLoader") " ? Commented May 5, 2020 at 5:04

3 Answers 3

1

Please check this post: How to upload preview image before upload through JavaScript
I have tested, one thing must to do:

IE8 needs a security settings change: internet settings, security, custom level :

 [] Include local directory path when uploading files to a server
 ( ) Disable
 (o) Enable 

After enable this option, your demo works fine in ie8! https://developer.mozilla.org/files/3699/crossbrowser_image_preview.html
Thanks!

Sign up to request clarification or add additional context in comments.

Comments

0

IE8 replaced filter with -ms-filter. If you want to support IE7 and 8 both, you need to provide both of these styles. The syntax for -ms-filter is slightly different to filter as well.

You might find more information here: IE8 ignores "filter" CSS styles

Comments

0

do as in this Post

whats missing on your code is the height and width setting

try with this

  imagePreview.style.width = "160px";
    imagePreview.style.height = "120px";

if the image size is bigger than the mentioend size it will not expand as you coding, change the sizingMethod=scale to sizingMethod=image

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.