struts2上传文件是通过提交form表单的方式实现的,如果需要实现异步上传文件的话 ,就需要借助jquery的异步提交表单的功能了,要用到jquery.form.js文件。
首先要加载相关js文件:
<script language="JavaScript" src="<%=request.getContextPath()%>/jq/jquery-1.8.3.js"></script> <script language="JavaScript" src="<%=request.getContextPath()%>/jq/jquery.form.js"></script>
form标签:
<form id="upload" action="./admin/score/upload.do" method="post" enctype="multipart/form-data" > <div style="margin:30px 0px 0px 0px;"> <table> <tr > <td><label class="forminfo">上传文件:</label></td> <td><input id="file" type="file" name="file" style="border: thin solid #CCCCCC;"/></td> <td><input type="submit" value="提交文件" style="height:25px;width:80px;"/></td> </tr> </table> </form>
jquery代码:
$(function(){ $("#upload").submit(function(){ var first = $("#first").val(); var second = $("#second").val(); var third = $("#third").val(); $(this).ajaxSubmit({ data: {first:first,second:second,third:third }, dataType: "json", resetForm: true, success: function(data) { if(data.result != null){ //根据返回信息,更新提示窗口内容 $("#result").html(data.result); //显示提示窗口 $(".tip").fadeIn(200); } } }); } return false; }); });
解析:
首先获取表单的submit事件,然后在事件里调用ajaxSubmit方法,即能异步提交表单。
在方法中可以声明若干参数,按需选择
url 提交表单数据的URL
type 提交表单数据的方法get 或 post
data 需要提交的参数键值对列表
datatype 声明返回的数据类型,有xml 、json、script 三种,如果返回类型与声明的不同,则回调函数无法执行
resetForm 如果为true 则成功后重置form 表单
success 成功后的回调函数,执行成功后的操作。在我的例子里,根据返回的信息更新提示窗口的内容,然后显示提示窗口
最后执行完ajaxSubmit方法后,则需要return false ,以阻止页面中的form表单提交。
Action类中要声明对应的文件、文件名、文件类型,并有相应get 和set方法
private File file; private String fileFileName; private String fileContentType;
最后是Action方法:
public String upload() throws FileNotFoundException{ //获取项目上中指定的保存上传文件的文件夹路径 String path = ServletActionContext.getServletContext().getRealPath("/upload"); //打开上传文件输入流 FileInputStream fis = new FileInputStream(file); //打开目标文件夹输出流 FileOutputStream fos = new FileOutputStream(new File(path,fileFileName)); //输入流转成字节,并用输出流写入文件 byte[] b = new byte[1024]; int length = 0; try { while((length = fis.read(b))!=-1){ fos.write(b,0,b.length); //写入文件 } fis.close(); fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return SUCCESS; }
好了,文件异步上传步骤大概就是如此,希望能给学习者有一个合理的参考。
相关推荐
标题中的"jquery+struts2实现异步刷新锁需要的包"表明我们需要的是一套特定的依赖包,用于整合jQuery和Struts2来实现在服务器端控制异步更新的逻辑。这通常涉及到以下组件: 1. **jQuery库**:这是JavaScript的一个...
在本文中,我们将深入探讨如何使用jQuery和Struts2框架实现文件上传功能。这是一个常见的需求,在Web应用中,用户可能需要上传图片、文档等文件。jQuery是一个轻量级的JavaScript库,提供了丰富的交互效果和API,而...
本实例将详细讲解如何利用jQuery库与Struts2框架结合,实现异步刷新功能。jQuery以其简洁易用的API深受开发者喜爱,而Struts2作为Java Web开发中的MVC框架,提供了丰富的动作和结果类型,便于构建动态网站。 首先,...
Struts2作为Controller层,通过Action类来实现业务逻辑,并通过配置文件或注解来定义Action与URL的映射关系。 Jquery是一个高效的JavaScript库,简化了HTML文档遍历、事件处理、动画以及Ajax交互。它使得开发者能更...
struts2+ajax+jquery异步批量上传超大文件,单文件最大支持2G,一次文件数量,文件大小都可设置。简单明了。绝对可用,稍微懂点的就可以修改为自己所用。你值得拥有! 我会分享给大家更多更好的东西,希望支持!
Struts2、jQuery和Ajax是Web开发中的三个关键组件,它们共同构成了文件异步上传的基础框架。这个项目是在MyEclipse环境下实现的一个简单的文件上传功能,让我们深入了解一下这些技术及其在文件上传中的应用。 首先...
struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步...
综上所述,"整合jquery+json+struts2异步提交实例"是一个实用的Web开发教程,它演示了如何利用jQuery的Ajax功能和Struts2框架处理JSON数据,实现前后端之间的高效异步通信。这个实例可以帮助开发者更好地理解和掌握...
总的来说,"jquery+struts2+upload"的组合是一个经典的Web开发实践,它展示了如何利用jQuery进行前端交互,通过Struts2处理后端业务,并实现文件上传这一常见的功能需求。通过理解和实践这个例子,开发者可以更好地...
在这个"struts+jQuery+ajax文件上传带进度条"的项目中,我们主要关注的是如何利用这些技术实现在后台处理文件上传时,前端能够显示实时的进度条效果,提升用户体验。 首先,Struts是一个基于MVC(Model-View-...
本项目"Spring+Struts2+JQuery实现简单的登录功能"正是以此为基础,通过集成这三个组件,实现了用户登录这一基础功能。 Spring框架作为Java企业级应用的核心,它提供了依赖注入(DI)和面向切面编程(AOP)等核心...
在本文中,我们将深入探讨如何使用jQuery、Uploadify、Struts2和JSP技术实现一个图片批量上传的Demo。这个组合提供了高效、用户友好的文件上传解决方案,特别适合需要处理大量图片的Web应用。 首先,jQuery是一个轻...
"jQuery+json异步实现JSP和struts2之间的数据传递"是一个典型的应用场景,它结合了前端JavaScript库jQuery与后端MVC框架Struts2,通过JSON这种轻量级的数据交换格式进行高效的数据交互。下面我们将详细探讨这一主题...
JQuery+struts+hibernate实现最简洁的功能完整的分页案例,数据添加支持异步提交表单,css美化表格,使用动态action处理数据,源码发布即可使用无需添加任何jar包,内有数据库脚本
本项目采用jQuery、Struts2和Ajax技术实现了这样一个功能,用户可以在不重新加载整个页面的情况下查看不同页的数据,提高了交互效率。 ### 1. jQuery jQuery是一个强大的JavaScript库,简化了JavaScript的DOM操作...
这个系统利用了前端的CSS进行页面美化和布局,通过JQuery增强用户体验并引入AJAX技术实现异步数据交换,后端则依赖于Struts 2框架来控制业务逻辑,并用JDBC与SQL Server 2000数据库进行数据交互。 首先,CSS...
Struts2和jQuery结合实现的多文件上传功能是一种常见的Web开发技术,特别是在处理大量数据时,用户需要上传多个文件的情况。这个项目的核心是利用Struts2的Action支持和jQuery的AJAX功能,以及一个用于展示进度条的...
这个压缩包中的资源,"SSH+jQuery+json 实现的Ajax操作,绝对精华,代码简练清晰,绝对能看明白",显然提供了一个使用这些技术实现Ajax级联操作的实例。下面将详细介绍这些技术及其在Ajax操作中的应用。 **SSH ...
在IT行业中,jQuery、Struts1和Ajax是三个非常重要的技术,它们分别在网页交互、MVC框架和异步数据传输方面发挥着关键作用。这个"jquery + struts1 + ajax学习例子"提供了结合这三个技术的实践教程,帮助开发者更好...
jQuery是一款轻量级的JavaScript库,以其简洁的API和强大的功能深受开发者喜爱,而Struts2作为Java企业级应用中的MVC框架,提供了模型-视图-控制器模式的实现,有助于构建结构清晰、易于维护的Web应用。本笔记将深入...