フォームが GET または POST のどちらで送信されても、IE にはファイル データをサーバーに送信できるテキストの文字列に変換する手段がありません。
ページをリロードせずにファイル POST を実行するには、次のオブジェクトが必要です: FormData、XHR.upload、File.files。「XHR」は xmlHTTPRequest オブジェクト、「File」はファイル セレクターの DOM インスタンスです。
上記のいずれかがサポートされていない場合は、通常の形式の POST にフォールバックできます。
if (!self.FormData||!xhr.upload||document.getElementById('file').files) {
document.getElementById('form').submit();
return;
}
次に、フォーム データは次のように取得されます。
var fd=new FormData();
fd.append('file',document.getElementById('file').files[0]);
xhr.open('POST',...); //complete your Ajax post here
xhr.send(fd); //the form data is sent here, with the file
Ajax ファイル POST のメカニズムを説明したので、レベル 2 XHR 機能を持たないブラウザーをプラグインが既に処理している可能性があります。プラグインを埋め込むときは、プラグインが iFrame 内にあることを確認してください。ファイルが完全にアップロードされたときにメイン ページに通知する場合は、アップロード ハンドラ自体に JavaScript 呼び出しを埋め込みます。
parent.doneuploading();
ここで、doneuploading は、含まれているページで定義されている JavaScript 関数です。
また、注目に値するのは、
enctype="multipart/form-data"
フォームタグで。