0

jQueryを使用して画像ファイルをアップロードしていますが、選択した画像をアップロードするたびに. このためには、IE ブラウザで画像を Priview 表示する必要があります。ただし、Firefox と Chrome がサポートされています。以下は関数のセットです。

マイコード

<Script>
function previewImages(input) { 
    $('#ImagePreview').html('');
       var fileList = input.files;      
        var anyWindow = window.URL || window.webkitURL;
        for (var i = 0; i < fileList.length; i++) {
            var objectUrl = anyWindow.createObjectURL(fileList[i]);           
            $('#ImagePreview').append('<a href="#" class="remove"></a><img src="' + objectUrl + '" class="img-polaroid" style="height:70px;width:70px;">');
            window.URL.revokeObjectURL(fileList[i]);
        }
}

  <h1>Upload Image</h1>
  <div class="form_scpop" >
    <form action="" method="get">
       <input type ="file" onchange="previewImages(this);" multiple/>
      <input name="" type="" id="image_alt" class="input_txt" />
      <div id="ImagePreview" ></div>
       <button class="btn btn-info" type="button" onclick="closeimgwindow()">Save</button>
    </form>
  </div>
4

2 に答える 2

5

filesプロパティは、IE8 および IE9 ではサポートされていません<input type ="file" multiple>。HTML5 準拠のブラウザのみがサポートしています。IE 10 に更新して、コードを試してください。

var fileList = input.files;    
//fileList is undefined in IE 8 and IE 9

アップデート

IE8/IE9 は type の入力要素に multiple オプションを実装していません (それを行う方法はありません。こちらを参照してください)。可能であれば複数のオプションを削除して、コードをテストしてみてください。そうしないと、古い IE 用に AJAX 経由でファイルのアップロードを実装する必要があります。IE10 ブラウザへの更新がより簡単になりました。

于 2013-03-13T12:07:28.997 に答える
2

すべきことは、Ajax を介してサーバーの一時フォルダーに画像をアップロードし、(衝突を避けるためにランダムに生成された) URL をウィンドウに戻して表示することです。ユーザーが保存をクリックしたら、目的の場所にコピー (または再アップロード) します。

古い IE では、実行していることが適切にサポートされていないため、これは理想的なクロスブラウザー ソリューションまたはフォールバックになります。

于 2013-03-18T19:20:15.097 に答える