JS异步文件上传(兼容IE8+)

作者:代码拾荒

时间:2026-10-22

浏览:603

本文介绍在HTML5不可用环境下,利用iframe实现兼容IE8的异步文件上传方法。通过设置form的target属性指向隐藏iframe,后端响应嵌入JS调用父页面回调函数,从而避免页面刷新,实现无刷新上传体验。

文章目录

HTML5不可用时的异步上传方案

在不支持HTML5的环境中,无法通过AJAX直接将文件推送到后端,必须依赖form表单进行提交。然而,常规的form表单提交后,浏览器会根据响应头及状态码对当前页面执行渲染、下载或跳转操作。当返回内容为text、html或json类型时,浏览器会重新渲染当前页面,这等同于页面刷新。

因此,基本思路是:在提交包含文件的表单时,引导浏览器将响应信息转移到iframe中处理。响应内容中嵌入一段JavaScript代码,该代码调用当前页面预定义的方法,以此实现回调功能,其原理类似于XSS攻击机制。

此时需利用form表单的target属性。我们仅需关注iframe的name属性值,该值指定了响应信息应被加载到哪个iframe中处理。

本例采用JSP结合Spring MVC进行实现,具体代码如下。

HTML5不可用时的异步上传方案

JSP与Spring MVC实现示例

前端上传页面JSP文件:demo.jsp

后端处理代码:

HTML5不可用时的异步上传方案

回调页面JSP文件:uploadCallback.jsp。注意:若上传文件的页面并非顶级窗口,而是嵌套在iframe中,则需使用window.parent获取上传文件页面的window对象。

HTML5不可用时的异步上传方案

运行效果:

HTML5不可用时的异步上传方案

HTML5不可用时的异步上传方案

以上为本文全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本站!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章