6

アップロードする前に画像を表示したいです。次のコードを試しましたが、Firefoxでのみ機能しますが、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>
4

1 に答える 1

6

セキュリティ上の理由から、IE9はクライアントコンピューター上のファイルへのアクセスをサポートしていません。そのため、プレビューは表示されません。画像をサーバーにアップロードしてから表示する必要があります。

鳥の見解

1つの方法は、アップロード時に進行状況バーを表示し、ajaxを使用してファイルをサーバー上の一時フォルダーに一時IDとしてイメージ名で保存し、そのIDをデータベースに保存することです(後で削除できるようにするため) )次に、画像コントロールに表示します。後でファイルを削除する必要がある場合は、IDを使用してファイルを削除するか、保存する必要がある場合は、ファイルを画像フォルダーに移動します。

于 2012-06-30T06:37:20.183 に答える