1.JQuery ajaxfileupload插件使用准备

下载地址:

http://www.phpletter.com/DOWNLOAD/

2.原理分析

ajaxfileupload也是利用iframe实现无刷新异步提交,与我的上一篇文章(WEB文件上传之apache common upload使用(一))中对iframe使用的方式有些不同。ajaxfileupload是通过监听iframe的onload方法来实现, 当从服务端处理完成后,就触发iframe的onload事件调用其绑定的方法,在绑定的方法中获取iframe中服务器返回的数据体(支持的普通文本,json,xml,script, html)

3.具体使用

jsp页面

Html代码

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>JQuery ajaxfileupload文件上传</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6. <link type="text/css" rel="stylesheet" href="css/ajaxfileupload.css" >
  7. <script type="text/javascript" src="js/jquery/jquery-1.9.1.js"></script>
  8. <script type="text/javascript" src="js/jquery/ajaxfileupload.js"></script>
  9. <script type="text/javascript">
  10. //定时器对象
  11. var uploadProcessTimer = null;
  12. //获取文件上传进度
  13. function getFileUploadProcess() {
  14. $.get('/upload/getFileProcessServlet', function(data) {
  15. $('#fileUploadProcess').html(data);
  16. });
  17. }
  18. function ajaxFileUpload()
  19. {
  20. //设置加载图标的显示
  21. $('#loading').show();
  22. uploadProcessTimer = window.setInterval(getFileUploadProcess, 20);
  23. $.ajaxFileUpload
  24. ({
  25. url:'/upload/ajaxUploadServlet',
  26. secureuri:false,
  27. fileElementId:'fileToUpload',
  28. dataType: 'json',
  29. data:{name: $('#name').val()},
  30. success: function (data, status)
  31. {
  32. //清除定时器
  33. if(uploadProcessTimer) {
  34. window.clearInterval(uploadProcessTimer);
  35. }
  36. $('#loading').hide();
  37. var message = data['message'];
  38. var code = data['code'];
  39. if(code != 200) {
  40. $('#fileUploadProcess').html('0%');
  41. }
  42. if(message)
  43. {
  44. alert(data.message);
  45. }
  46. },
  47. error: function (data, status, e)
  48. {
  49. //清除定时器
  50. if(uploadProcessTimer) {
  51. window.clearInterval(uploadProcessTimer);
  52. }
  53. $('#loading').hide();
  54. //这里处理的是网络异常,返回参数解析异常,DOM操作异常
  55. alert("上传发生异常");
  56. }
  57. })
  58. return false;
  59. }
  60. </script>
  61. </head>
  62. <body>
  63. <h2>JQuery ajaxfileupload文件上传</h2>
  64. <img id="loading" src="data:images/loading.gif" style="display:none;">
  65. 用户信息:  <br/>
  66. 姓名:<input id="name" name="name" type="text"> <br/>
  67. 附件:<input id="fileToUpload", name="file1" type="file" class="input"> <br/>
  68. <br><br>
  69. <input type="button" οnclick="return ajaxFileUpload();" value="上传"><br/>
  70. 上传进度:<label id="fileUploadProcess"></label>
  71. </body>
  72. </html>

服务端处理修改

由原来的返回script改为纯JSON数据格式的返回

AjaxUploadFileServlet.java关键变动

Java代码

  1. /**
  2. * 返回结果函数
  3. * @param response
  4. * @param state
  5. */
  6. private void responseMessage(HttpServletResponse response, State state) {
  7. response.setCharacterEncoding(encode);
  8. response.setContentType("text/html; charset=" + encode);
  9. Writer writer = null;
  10. try {
  11. writer = response.getWriter();
  12. writer.write("{\"code\":" + state.getCode() +",\"message\":\"" + state.getMessage()+ "\"}");
  13. writer.flush();
  14. writer.close();
  15. } catch(Exception e) {
  16. logger.error(e.getMessage(), e);
  17. } finally {
  18. IOUtils.closeQuietly(writer);
  19. }
  20. }

4.总结

ajaxfileupload插件简化了文件上传的过程,页面上无需定义from表单,提交时自动完成临时form表单创建target为临时创建的iframe, 并将file控件复制一份到表单内进行提交,完成提交后自动销毁临时生成的form表单和iframe。

缺点:不支持多个file控件,不过这种解决方案也不适合进行多文件的提交,所以无伤大雅。

WEB文件上传之JQuery ajaxfileupload插件使用(二)相关推荐

  1. jquery插件课程2 放大镜、多文件上传和在线编辑器插件如何使用

    jquery插件课程2 放大镜.多文件上传和在线编辑器插件如何使用 一.总结 一句话总结:插件使用真的还是比较简单的,引包,初始化,配置参数(json),配置数据(json),而后两步不是必须的.而且 ...

  2. web文件上传(一)--文件上传与json上传区别及方法

    Web文件上传方法总结大全 上传文件与与上传数据区别 上传数据主要指json等简单字符串,上传文件指的是上传word.excel图片等.在上传数据的时候enctype默认为第一个application ...

  3. web文件上传-0x00漏洞

    文件上传-0x00漏洞 题目:2016全国大学生信息安全竞赛-web文件上传 原理 0x00漏洞:也称为%00阻断漏洞,0x00漏洞常见于Apache服务器后缀名称解析漏洞,不管文件最后后缀为什么,只 ...

  4. java web文件上传所需要的commons-fileupload和 commons-io jar包

    文章目录 一.官网获取 二.百度网盘分享 三.分享与热爱 一.官网获取 学习java web文件上传时需要用到两个必备的jar包: commons-fileupload commons-io jar ...

  5. java web 上传附件_JAVA WEB文件上传步骤

    JAVA WEB文件上传步骤如下: 实现 Web 开发中的文件上传功能,两个操作:在 Web 页面添加上传输入项,在 Servlet 中读取上传文件的数据并保存在本地硬盘中. 1.Web 端上传文件. ...

  6. web文件上传下载原理浅析

    一.web文件上传浅析 现在有很多Web程序都有上传功能,实现上传功能的组件或框架也很多,如基于java的Commons FileUpload.还有Struts1.x和Struts2中带的上传文件功能 ...

  7. Web文件上传方法总结大全

    文件上传在WEB开发中应用很广泛,我们经常发微博.发微信朋友圈都用到了图片上传功能. 文件上传是指将本地图片.视频.音频等文件上传到服务器上,可以供其他用户浏览或下载的过程. 今天我给大家聊聊常见的文 ...

  8. SpringMVC整合fastdfs-client-java实现web文件上传下载

    为什么80%的码农都做不了架构师?>>>    版权声明:本文为博主原创文章,转载请标明出处(http://blog.csdn.net/wlwlwlwl015)Thanks. 目录( ...

  9. WEB文件上传之apache common upload使用(一)

    文件上传一个经常用到的功能,它有许多中实现的方案. 页面表单 + RFC1897规范 + http协议上传 页面控件(flash/html5/activeX/applet) + RFC1897规范 + ...

最新文章

  1. 国产芯片WiFi物联网智能插座—电耗采集功能设计
  2. yum安装zlib出错
  3. 计算机控制水槽液位控制,计算机过程控制实验报告单容水箱液位数学模型的测定实验...
  4. python后台框架_我的第一个python web开发框架(14)——后台管理系统登录功能
  5. oppor15android10怎么降级,OPPO R9S7.1系统怎么降回6.0版本 OPPO R9S7.1系统降级教程
  6. vue实例中使用swiper
  7. 2015 2020 r4烧录卡 区别_行业新闻2020年中国智能门锁行业发展现状分析
  8. java springboot宠物医院管理系统(毕业设计)
  9. xxl-job的学习使用
  10. 3D游戏编程与设计-井字棋
  11. 公务员行测常识积累(持续更新中)
  12. 教学教法改革效果评估的4种方法
  13. 论文排版1-图片-eps、pdf格式转换
  14. (4.6.31)Android Bitmap 详解
  15. 秒表计时器怎么读_秒表使用说明书
  16. 静默活体检测之Silent-Face-Anti-Spoofing
  17. Spring Data JPA-单向一对一关联映射
  18. 金字塔决策交易系统里实现股票交易策略实盘自动下单方法
  19. 解析las文件_点云las文件读取
  20. 三星 联通 i9502 4.3root 后 刷入google商店等软件 解决Android操作系统升级中 问题...

热门文章

  1. vs 窗体连接mysql_vs2008 c#开发windows窗体程序,怎么连接数据库?
  2. java连接access2013数据库_滴水穿石–Java连接Access数据库及其操作
  3. 电大计算机组成原理ppt,四川电大计算机组成原理(0023)第二次形考作业(课程号:5110023).docx...
  4. lr监控mysql_LR通过SiteScope监控mysql
  5. xshell搭建宝塔没有远程命令密码框框弹出来_服务器安装宝塔控制面板+wordpress搭建个人网站...
  6. 时间设置偏移秒_零偏移有源低通滤波器,第2部分
  7. 对前端Jenkins自动化部署的研究
  8. [HZNOI #koishi] Magic
  9. Jenkins 安装与使用--实例
  10. ref和out区别总结