0

ユーザーのローカルファイルから画像を読みたいです。(ユーザーは ie7 -ie9 の下にいるため、html5 のバージョンを完全にはサポートしていません) 入力|ファイルの値を最初に仮定すると、画像が表示されず、2 回目に別の画像を変更すると、画像が表示されます。示すことができます。初めて入力した画像を表示できるようにする方法を知りたいだけです。

ユーザーのローカルファイルから画像を読みたいので、以下のコードを適用します:

function ShowImage(obj){ 
  var allowSuffix=".jpg|.gif|.bmp|.png"; //.jpg,.bmp,.gif,.png

  var suffix=obj.value.substring(obj.value.lastIndexOf(".")+1).toLowerCase();

  var browserVersion= window.navigator.userAgent.toUpperCase();

  if(allowSuffix.indexOf(suffix)>-1){
    if(browserVersion.indexOf("MSIE 7.0")>-1 || browserVersion.indexOf("MSIE 8.0")>-1 || browserVersion.indexOf("MSIE 9.0")>-1){//ie7, ie8, ie9 
      obj.select();
      var source=document.selection.createRange().text;
      obj.blur();

      var newPreview = document.getElementById("divNewPreview");
      newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = source; 
      newPreview.style.width = 160; 
      newPreview.style.height = 170; 
      newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = 'scale';

      $("#divPreview").attr("style","display:none");
      $("#divNewPreview").attr("style","filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);width:160px;height:170px;border:solid 1px #d2e2e2;");

    }
  }
}

HTML 部分のコードは次のように簡単です。

<div id="divNewPreview" style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image ); width: 160px; height: 170px; border: solid 1px #d2e2e2; display: none;"></div>
<p>
  input file: <input type="file" onchange="ShowImage(this)" />
</p>
4

1 に答える 1

0

古いブラウザは、ローカル ファイル システムにアクセスできません。ファイルを表示するには、サーバーに投稿する必要があります。

于 2012-10-19T21:34:02.857 に答える