Ajax(XMLHttpRequest)でのファイルアップロード

非同期で画面遷移なしでサーバーと連携するにはXMLHttpRequestで普通にできるのですが、ファイルアップロードではどうしても旨くいきません。

prototype.jsのForm.serialize()ならいけそうなのですが、訳あってそれが利用できない場合は?

通常、Formから送信(submit)すると画面が遷移してしまうのですがformタグのtarget属性とiframeを利用すればとりあえず画面遷移しなくてもいけそうです。例えば同一ページで以下のようにコーディングする。

<form name="myForm" action="xxx.cgi" target="test" method="post" enctype="multipart/form-data" >
<!–input等のタグ–>
</form>

/* アクションの戻り先 表示したければdisplay:block */
<iframe name="test" style="display:none;"></iframe>

このようにすれば画面遷移することなく同一ページ内での操作が可能です。modal dialogのような操作をする場合にはとりあえずこれでいけるのでしょうか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


This site uses Akismet to reduce spam. Learn how your comment data is processed.