IE9以下ajax异步上传文件

swing wang 2017-08-20 05:39:22
让我头疼了一个星期的问题,如标题。
说到异步请求,肯定第一个想到ajax异步请求。

可是异步上传文件,大家第一个想到的都是formData,然后改成这样

这样的ajax在绝大部分浏览器及版本上都是没问题的。亲测可靠!
可是,我目前负责维护一个比较老的项目。有多老?大概15年前开发的吧(在此吐槽一下,项目太旧,改动太大,经手的人太多,代码早已不是当初的代码了,那代码像坨翔。各种耦合,各种命名,各种效率低下,早该重构下了。但我不是老板,只有硬着头皮上)
就是这个项目,绝大部分都是在IE9以下的浏览器上使用。
但是,重点来了。formData在IE9以下是不受支持的。所以很好的实现方案就实现不了。
在此,我想请教各位大神,有没有不使用formData,使用ajax异步上传文件的解决方案?
早些年在IE9以前异步提交文件都是怎么实现的?或者其他方式也许。最好还能监测上传状态,搞个状态条的。
我试了很多,jquery.form、xmlhttprequest等等。都不行。各位大神给支个招
...全文
1785 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
vekaco 2017-11-10
  • 打赏
  • 举报
回复
遇到同样的问题了,解决了没?求教
Go 旅城通票 2017-08-21
  • 打赏
  • 举报
回复
引用 5 楼 Java_zero 的回复:
[quote=引用 3 楼 showbo 的回复:] jquery.form.js可以啊,支持FormData就ajax+formdata,否则就iframe模拟,也不会刷新当前页面,但是会出现一个进度条 推荐学习资料 JavaScript/Ajax开发技巧 asp网站使用utf-8编码注意事项
使用iFrame我也不是没考虑过,总觉得它不如js异步上传那么灵活,而且不好展示上传的状态条,请求前,请求后,成功后,失败后这些回调函数没法搞。实在没办法也就只有这样了。[/quote] 服务器端try..catch保证正常输出js代码 或者iframe添加onload,不管是否报错都会执行onload,自己获取iframe的内容进行判断就知道是否成功了
swing wang 2017-08-20
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
jquery.form.js可以啊,支持FormData就ajax+formdata,否则就iframe模拟,也不会刷新当前页面,但是会出现一个进度条 推荐学习资料 JavaScript/Ajax开发技巧 asp网站使用utf-8编码注意事项
使用iFrame我也不是没考虑过,总觉得它不如js异步上传那么灵活,而且不好展示上传的状态条,请求前,请求后,成功后,失败后这些回调函数没法搞。实在没办法也就只有这样了。
Go 旅城通票 2017-08-20
  • 打赏
  • 举报
回复
或者用swfupload之类居于flash来实现
Go 旅城通票 2017-08-20
  • 打赏
  • 举报
回复
jquery.form.js可以啊,支持FormData就ajax+formdata,否则就iframe模拟,也不会刷新当前页面,但是会出现一个进度条

推荐学习资料
JavaScript/Ajax开发技巧
asp网站使用utf-8编码注意事项
swing wang 2017-08-20
  • 打赏
  • 举报
回复
在线等,各位大神帮帮忙吧
swing wang 2017-08-20
  • 打赏
  • 举报
回复
没有了formData,ajax的data属性那里到底应该写什么才可以把文件放进去啊

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧