0

我正在使用 jQuery 上传图像文件,但是每当我上传任何选定的图像时。为此,我需要 Priview 在 IE 浏览器中显示图像。但 Firefox 和 Chrome 支持的功能如下。

我的代码

<Script>
function previewImages(input) { 
    $('#ImagePreview').html('');
       var fileList = input.files;      
        var anyWindow = window.URL || window.webkitURL;
        for (var i = 0; i < fileList.length; i++) {
            var objectUrl = anyWindow.createObjectURL(fileList[i]);           
            $('#ImagePreview').append('<a href="#" class="remove"></a><img src="' + objectUrl + '" class="img-polaroid" style="height:70px;width:70px;">');
            window.URL.revokeObjectURL(fileList[i]);
        }
}

  <h1>Upload Image</h1>
  <div class="form_scpop" >
    <form action="" method="get">
       <input type ="file" onchange="previewImages(this);" multiple/>
      <input name="" type="" id="image_alt" class="input_txt" />
      <div id="ImagePreview" ></div>
       <button class="btn btn-info" type="button" onclick="closeimgwindow()">Save</button>
    </form>
  </div>
4

2 回答 2

5

IE8 和 IE9files不支持该属性。<input type ="file" multiple>只有兼容 HTML5 的浏览器支持它。更新到 IE 10 并尝试您的代码。

var fileList = input.files;    
//fileList is undefined in IE 8 and IE 9

更新

IE8/IE9 没有在 type 的 input 元素上实现 multiple 选项(没办法做到这一点,见这里)。如果可能,请尝试删除多个选项并测试您的代码。否则,您将不得不通过 AJAX 为旧版 IE 实现文件上传。更新到 IE10 浏览器更容易。

于 2013-03-13T12:07:28.997 回答
2

您应该做的是通过Ajax将图像上传到您的服务器到一个临时文件夹中,然后将url(随机生成以避免冲突)发送回窗口显示。当用户单击保存时,将其复制(或重新上传)到您想要的位置。

这将是您理想的跨浏览器解决方案或后备方案,因为较旧的 IE 对您正在做的事情没有适当的支持。

于 2013-03-18T19:20:15.097 回答