2011-07-14 5 views
1

well-known methodはAJAXのような方法でサーバーにファイルをアップロードするために使用しています(既にフラッシュベースのアップロードが行われていますが、これはフォールバックです)が、実装に問題があるようです。 Opera Dragonfly(FireBugに相当)のネットワーク情報を見ると、リクエストはiframeのsrcではなく現在のページに向けられているようです。フォームをiframeに送信してファイルをアップロードする。なぜそれは働いていないのですか?

これは正常な動作ではないことを私は確信していましたが、iframe の一部であり、それが表現されていると考えました。それにもかかわらず、サーバーはiframeのsrc属性で表される場所で要求を受信して​​いません。誰かがこれがなぜなのか教えてもらえますか?

私は、フォームのiframeへの提出に関連するDragonflyのエントリの画像を含めました。 「referer」ヘッダがリクエストURLと同じであることに注意してください。 Content-Typeヘッダーのために、このエントリによって表されるのはフォームの送信です。

enter image description here

次のようにIFRAMEとフォームのマークアップは、次のとおり

IFRAME:

<iframe id='uploadMediaIframe' name='uploadMediaIframe' src='ActionServlet'> 


</iframe> 

形態:

<form id='exForm' class='exForms' method='post' target='uploadMediaIframe' enctype='multipart/form-data'> 

<input id='regularUploadFormFileInput' class='regularUploadFormFileInputs' name='Filedata' type='file'/> 
<input name='action' value='uploadEntryMedia' type='hidden'/> 
<input name='type' value='picture' type='hidden'/> 

</form> 

任意の助けを理解大幅あろう。ありがとう。

答えて

1

フォームのアクション属性が不足していると思います。これは次のようになります。

<form id='exForm' class='exForms' action="posted_url" method='post' target='uploadMediaIframe' enctype='multipart/form-data'> 

<input id='regularUploadFormFileInput' class='regularUploadFormFileInputs' name='Filedata' type='file'/> 
<input name='action' value='uploadEntryMedia' type='hidden'/> 
<input name='type' value='picture' type='hidden'/> 

</form> 
+0

はい。それはそれだった。しかし、1つの質問.... iframeにonChangeイベントを登録しましたが、サーバーの応答を受け取っているとは思えますが、起動していません。何か案は? – Kevin

+1

Nevermind;それを解決しました。 onChangeハンドラの代わりにonLoadハンドラを使用する必要があります。 – Kevin

関連する問題