//这是html标签
<form action="address/fileUpload.do" id="form2" name="form2" encType="multipart/form-data" method="post" target="hidden_frame_1" >
<input type="file" id="myFile" name="myFile" style="width:450px">
<input type="text" id="fileName" name="fileName" />
<INPUT type="submit" value="上传文件"><span id="msg"></span>
<br>
<font color="red">支持JPG,JPEG,GIF,BMP,SWF,RMVB,RM,AVI文件的上传</font>
<iframe name='hidden_frame_1' id="hidden_frame_1" style='display:none' ></br></iframe>
</form>
//以下是struts2标签
<s:form target="ifr_up" id="uploadImageForm" name="uploadImageForm" enctype="multipart/form-data" method="post" action="/address/fileUpload.do" >
<input type="file" name="myFile" id="myFile" style="outline: medium none; width: 75px; height: 25px; visibility: visible; " hidefoucs="true"
onchange="uploadImage()" />
</s:form>
<iframe id="ifr_up" name="ifr_up" style="display: none;"></iframe>
js
/**
* 回调函数
*/
function callback(data){
if(data.msg=="true"){
alert("发布成功");
}else{
alert("发布失败");
}
}
//后台
//action
private File myFile; //对应form表单的file name的名字myFile
private String fileName; //对应form表单的file name的名字fileName,这一部是为什么呢,因为myFile传过去的是一个以.tmp结尾的文件,是一个临时的,所以到时获取不到文件的后缀了,所以弄一个隐藏域文件框带到后台来获取文件的名字
public File getMyFile() {
return myFile;
}
public void setMyFile(File myFile) {
this.myFile = myFile;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String fileUpload() throws Exception {
log.info("开始上传图标........");
HttpServletRequest request = ServletActionContext.getRequest(); //请求的值
String filePath=ServletActionContext.getServletContext().getInitParameter("filePath");
if(StringUtils.isBlank(filePath)){
log.info("filePath为空");
filePath="images/tempUploadFile";
}
long fileSize=myFile.length();
if(fileSize>(1024*1024)){ //1mb文件大小
ServletActionContext.getResponse().getWriter().write("<script>alert('文件超过指定的大小')</script>");
}else{
//String imageFileName = new Date().getTime() +getExtention(fileName); //图片的名字
File imageFile = new File(ServletActionContext.getServletContext().getRealPath(filePath ) + "/" + fileName.substring(fileName.lastIndexOf('\\')+1)); //文件临时储存地
boolean flag= copy(myFile, imageFile);
if(flag){
String rspBody = "{\"msg\":\"" + true + "\"}";
ServletActionContext.getResponse().getWriter().write("<script>alert('上传成功')</script>");
ServletActionContext.getResponse().getWriter().write("<script>parent.callback(\""+rspBody+"\")</script>");//调用js的代码
}
}
}
private static boolean copy(File src, File dst) {
try {
int BUFFER_SIZE = 16 * 1024 ;
InputStream in = null ;
OutputStream out = null ;
try {
in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);
out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);
byte [] buffer = new byte [BUFFER_SIZE];
while (in.read(buffer) > 0 ) {
out.write(buffer);
}
} finally {
if ( null != in) {
in.close();
}
if ( null != out) {
out.close();
}
}
} catch (Exception e) {
return false;
}
return true;
}
//获取扩展名
private static String getExtention(String fileName) {
int pos = fileName.lastIndexOf( "." );
return fileName.substring(pos);
}
分享到:
相关推荐
2. Struts2 AJAX插件:如struts2-ajax-plugin.jar,提供了AJAX相关的标签和拦截器。 3. Struts2 JSON插件:如struts2-json-plugin.jar,支持JSON序列化和反序列化。 4. 其他依赖库:可能包括Servlet API、Commons ...
6. Struts2与Ajax的集成,使用JQuery的$.ajax()或$.getJSON()方法 7. 请求与响应的处理,包括参数传递和数据封装 8. 实例演示:使用Struts2+Jquery+Ajax实现动态加载数据或表单验证 "struts2 jar"文件包含了Struts2...
Struts2是一个非常流行的Java Web框架,它支持多种扩展,包括Ajax功能。在Struts2中实现Ajax交互,通常需要依赖一些特定的库和插件。以下是对"ajax-struts2需要的3个包"的详细解释: 1. **json.js**: 这是一个...
Struts2、jQuery和Ajax是Web开发中的三个关键组件,它们共同构成了文件异步上传的基础框架。这个项目是在MyEclipse环境下实现的一个简单的文件上传功能,让我们深入了解一下这些技术及其在文件上传中的应用。 首先...
结合这三个组件,开发者可以构建出响应式、动态的Web应用,后端使用Struts 2处理业务逻辑,通过JSON Plugin返回JSON数据,前端利用jQuery通过AJAX请求获取这些数据,然后动态更新页面,提高用户体验。这种前后端分离...
Struts2-jQuery-Plugin是基于Struts2框架的一个扩展插件,它为开发者提供了丰富的jQuery UI组件,使得在Struts2应用中实现交互式的用户界面变得更加便捷。这个使用手册将详细阐述如何集成并利用该插件提升Web应用的...
在后端,如果是Java环境,可以使用诸如Spring MVC或Struts2等框架来接收和处理上传的文件。通常,你需要创建一个Controller方法,接收Multipart请求,然后将文件保存到服务器的指定目录: ```java import org....
在IT行业中,jQuery、AJAX、JSON以及Struts2是四个非常重要的技术,它们在Web开发领域中扮演着核心角色。下面将详细解释这些技术及其相互间的集成。 **jQuery** 是一个快速、简洁的JavaScript库,它简化了HTML文档...
标题 "Jquery struts2 json 实现ajax" 涉及到的是在Web开发中使用jQuery库与Struts2框架结合处理JSON数据的Ajax技术。这个主题主要关注如何通过前端的jQuery实现异步请求,与后端的Struts2框架进行交互,从而更新...
在Web开发中,jQuery的AJAX功能经常被用于与服务器进行异步数据交换,而Struts2作为一款流行的Java Web框架,提供了处理前端请求的能力。本文将深入探讨如何使用jQuery的AJAX方法发送JSON对象数组到Struts2的Action...
在这个"struts2+ajax+jquery"的主题中,我们将深入探讨如何利用Struts2、jQuery和Ajax技术实现Web页面的异步交互。 首先,Struts2作为MVC框架,它的核心是Action,它负责处理用户的请求,并通过配置的Result返回...
在这个简单的Ajax例子中,我们将探讨如何整合Struts2和jQuery来实现页面无刷新的数据更新。 首先,我们需要在项目中引入Struts2和jQuery的相关依赖。Struts2通常通过Maven或Gradle添加依赖库,包括核心库、struts2-...
Struts2与jQuery的集成主要依赖于struts2-jquery-plugin,这个插件提供了一系列的标签库,使开发者可以直接在JSP页面中使用jQuery功能,而无需编写大量的JavaScript代码。例如,`<sj:head>`标签会自动引入jQuery库和...
这个系统利用了前端的CSS进行页面美化和布局,通过JQuery增强用户体验并引入AJAX技术实现异步数据交换,后端则依赖于Struts 2框架来控制业务逻辑,并用JDBC与SQL Server 2000数据库进行数据交互。 首先,CSS...
1. **商品记录删除**:当用户点击删除按钮时,jQuery可以通过AJAX调用一个Struts2的Action,传递商品ID作为参数。在Action中,我们可以使用Hibernate或JDBC等持久层技术来执行SQL删除语句,然后返回一个表示操作成功...
Struts2作为一个MVC(Model-View-Controller)框架,提供了强大的控制层逻辑,而jQuery则是一种高效的JavaScript库,简化了DOM操作、事件处理以及Ajax通信。在这个"商品小系统"中,它们的结合使用可以实现快速的数据...
Struts2 框架与 jQuery 的整合使得在 Java Web 应用中实现 AJAX 功能变得更加便捷高效。AJAX(Asynchronous JavaScript and XML)技术允许前端与后台进行异步通信,提升用户体验,无需刷新整个页面即可更新部分内容...
标题 "JQuery EasyUI 整合struts2 代码下载" 涉及到的是一个Web开发中的技术组合,主要集中在前端的JQuery EasyUI框架与后端的Struts2框架的集成应用。JQuery EasyUI是一个基于jQuery的UI库,提供了丰富的组件,如...
"Struts2+JSON+jQuery实现Ajax数据的存取"就是一个典型的示例,它结合了强大的MVC框架Struts2、轻量级的数据交换格式JSON以及高效的前端库jQuery,以实现网页上的无刷新数据交互。下面将详细介绍这三个技术及其在...