通过向iframe提交表单来上传文件;为什么不工作?

时间:2011-07-14 18:23:57

标签: html ajax iframe file-io

我正在尝试实现用于以AJAX方式将文件上传到服务器的well-known method(我已经有基于闪存的上传,这是一个后备),但似乎好像我的实施是错误的。查看Opera Dragonfly(相当于FireBug)的网络信息,似乎请求被定向到当前页面而不是iframe的src

起初我很确定这不是正常的行为,但后来我意识到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 个答案:

答案 0 :(得分:1)

我认为你缺少表单的action属性。它应该是这样的:

<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>