在IE9中上传图片前显示预览

6

在上传图片之前,我想先显示图片。我尝试了以下代码,但它只能在火狐浏览器中工作。但我需要让它在IE中也可以工作。有没有人能为我提供最佳解决方案?下面是我的代码。我已经谷歌了一整天,但找不到解决方案。

enter code here

function loadname(img, previewName) {
      var isIE = (navigator.appName == "Microsoft Internet Explorer");
      var path = img.value;
      var ext = path.substring(path.lastIndexOf('.') + 1).toLowerCase();
      if (ext == "gif" || ext == "jpeg" || ext == "jpg" || ext == "png") {
          if (isIE) {
              alert(path);
              $('#' + previewName).attr('src', path);
          } else {
              if (img.files[0]) {
                  var reader = new FileReader();
                  reader.onload = function (e) {
                      $('#' + previewName).attr('src', e.target.result);
                  }
                  reader.readAsDataURL(img.files[0]);
              } 
          }
      } 
  }  

我的HTML是

 <body><form method="post" > 
<input type="file" class="file" onchange="loadname(this,'previewimg')" id="file" /><img src="about:blank" name="previewimg" id="previewimg" alt="" style="width:2in; height:2in"/> 


</form>
1个回答

6
为了安全起见,IE9不支持访问客户计算机上的文件,这就是为什么您没有看到任何预览的原因。您需要将图像上传到您的服务器,然后显示它。
鸟瞰图:一种方法是,在上传时使用ajax将文件保存到您服务器上的临时文件夹中,并将图像名称作为临时ID存储在数据库中(以便稍后删除),并在图像控件中显示进度条。如果您需要稍后删除文件,只需使用ID删除文件,如果需要保存,则将其移动到图像文件夹中。

请问@Ashwin Singh能否提供一下关于服务器端如何操作的示例代码? - SahithiPinisetty
你需要服务器端脚本来实现这个。 - Ashwin Singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接