我需要上传文件并将结果返回到同一页面。 <form>
还有几个将在POST中发送的数据字段。
由于浏览器支持有限,我无法使用HTML 5,不幸的是,我见过的AJAX文件上传解决方案都使用HTML 5.我可以在Javascript中进行POST,但我还没有看到像上传的文件一样此
我的服务器是用Java编写的,但这并不重要。
有没有办法让这种POST的结果返回到同一页面?
答案 0 :(得分:0)
我建议你看一下jQuery Form Plugin的做法&#34; legacy&#34;文件上传。基本上它使用iframe在后台提交表单。 http://malsup.com/jquery/form/#file-upload
答案 1 :(得分:0)
Flash,Silverlight和HTML5文件API之外的普遍接受的方法是将您的<form>
帖子发送到页面上不可见的<iframe>
。
<iframe>
位置是上传文件的页面或文件处理程序。然后,您可以在主页面上运行javascript函数,定期轮询您的服务器并检查下载是否已完成。
当您将文件上传到<iframe>
时,您需要某种方法来识别客户端和服务器都知道的上传内容。一种方法是在客户端上生成GUID,并将其与文件和其他数据字段一起发布。服务器应该在接收文件数据之前保持该GUID,并通过将进度和GUID链接在一起来跟踪上载的进度。由于生成的客户端已经知道GUID,因此它可以通过发送它生成的内容向服务器发送请求以获取上载的进度。
答案 2 :(得分:0)
我最终使用了jQuery Form Plugin。它支持使用以下选项在标头中发送基本身份验证凭据:
headers : { Authorization: basicAuthCredentials}
我也需要这样做。