IE9 でサポートする必要がある ajax を使用してファイルをアップロードする必要があります。ここで述べたように FormData を使用していました。私のコードは次のようになります。
var files = new FormData();
JQuery.each($('#file')[0].files, function (i, file) {
files.append('file', file);
});
$.ajax({
type: "POST",
url: '/url',
cache: false,
contentType: false,
processData: false,
data: files,
...
});
これは Safari と Firefox では問題なく動作しますが、IE9 では FormData がサポートされていないため、IE9 では失敗します。次のように設定して、ファイルとして送信しようとしました:
data: $('#file')[0].files[0]
contentType: 'multipart/form-data'
データが URL エンコード形式で送信され、Java 側で解析できないため、これは失敗します。これを解決する方法についてのヘルプやポインタは大歓迎です。すべてのブラウザで動作するものが必要です。
編集:ファイルは通常小さいため、アップロードの進行状況バーは必要ありません。複数のファイルをアップロードする必要はありません。単一のファイルのアップロードが必要です。