2012-06-30 117 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

你需要服務器端腳本來做到這一點。 –

相關問題