2012-06-30 119 views
6

我想在上传之前显示图像。我尝试了下面的代码,但它只能在firefox中工作,但我需要使它在IE中工作。任何人都可以告诉我最好的对于this.i解决我下面给我的代码可以在任何一个身影在哪里,我去 我GOOGLE了近一个整体day.But无法找到我的解决方案 这里是我的代码在IE9上传之前显示图像的预览图

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> 

回答

6

出于安全原因,IE9不支持rt访问客户端计算机上的文件,这就是为什么你没有看到任何预览。您需要将图像上传到您的服务器上,然后显示它。

鸟瞰

的一种方式可能是在上载,显示一个进度条,同时使用AJAX的文件到临时文件夹保存图像名称作为临时ID服务器上并存储ID它在数据库中(以便稍后可以删除它),然后将其显示在图像控件中。如果您以后需要删除该文件,只需使用该ID将其删除,或者如果需要将其保存,请将其移至图像文件夹。

+0

能否请你提供一些关于如何做这个服务器端的示例@Ashwin Singh – SahithiPinisetty

+0

你需要服务器端脚本来做到这一点。 –

相关问题