- 浏览: 543106 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
wocan23:
镜像是不是就是集群里面的从服务器啊
高并发处理方案 -
chenyi0834:
net.sf.ehcache.Cache ehCache=Ap ...
spring+ehCache简单整合使用示例 -
fsh430623:
是一个获取spring容器bean的工具类
spring+ehCache简单整合使用示例 -
hxc985815621:
ApplicationContextUtils是什么?
spring+ehCache简单整合使用示例 -
peixingchen:
你好,楼主,Action里面的CompanyApplyDTO类 ...
jquery+struts1.3.8的ajax上传文件
最近做项目,对用户体验要求较高,大量采用jquery的ajax支持,最近要做个文件上传,要求也用ajax方式实现,这里采用了jquery的ajaxfileupload.js插件。见附件
1.上传jsp。
<table cellpadding="0" cellspacing="0" border="0" class="ktable_9" >
<tr>
<td><input type="file" name="upoadFileName" id="upoadFileName"><a href="#" onclick="uploadFile();return false;"><span><span>上传</span></span></a></td>
</tr>
<tr>
<td> </td>
</tr>
</table>
2.下面是前端的js脚本:
function uploadFile(){
var myurl="/uploadMyFile.do?tenderInfoId="+tenderInfoId;
jQuery.ajaxFileUpload(
{
url:myurl,
secureuri:false,
fileElementId:'imgFile', --上传文件对应的文本域的id
dataType: 'json',
success: function (data, status)
{
alert('上传成功');
},
error: function (data, status, e)
{
alert('上传失败');
}
} );
}
3.这是后台的action:
public ActionForward uploadMyFile(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
/* =============禁止缓存============== */
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
/* =============禁止缓存============== */
response.setContentType("text/html;charset=UTF-8");
String filewholeName = "";
try {
CompanyApplyDTO applyDTO = (CompanyApplyDTO) form;
// FormFile formfile = applyDTO.getImgFile();
//--这种方式也可以,但CompanyApplyDTO 中应该有 一个这样的属性FormFile imgFile;
FormFile formfile = (FormFile) applyDTO.getMultipartRequestHandler()
.getFileElements().get("imgFile");
//--上传文件对应的文本域的id
String fileName = file.getFileName();
String fileSimpleName = fileName.substring(fileName
.lastIndexOf("."));
fileName = DateHandler.convertStringToDate(new Date(), null)
+ fileName;
if (file.getFileSize() > 50 * 1024 * 1024) {
write("{'result':false,'error':' filesize'}", response);
return null;
}
String uploadPath = this.getServlet().getServletContext()
.getRealPath("/")
+ "uploadfile/";
File savePath = new File(uploadPath);
System.out.println(savePath.getAbsolutePath());
if (!savePath.exists()) {
savePath.mkdir();
}
filewholeName = uploadPath + "/" + fileName;
FileOutputStream fos = new FileOutputStream(filewholeName);
fos.write(file.getFileData());
log.info("#############上传文件:" + fileName);
write("{'result':true}", response);
} catch (Exception e) {
write("{'result':false,'error':'" + e.getMessage() + "'}", response);
}
return null;
}
说明:
jaaxfileupload.js有可能执行错误,在接受返回值后,刚可将代码中
原为 : eval("data = "+data+ ); 替换为如下:
eval("data = \" "+data+" \" ");
原代码基于jquery 低版本,1.4.2之前, 在高版本jquery中执行会有错误,handleError函数在高版本中已经没有,需做相关处理,最简单是从jquery1.4.2中移植到这里。
eval("data = \" "+data+" \" ");
在springmvc中我如下返回 : out.write("{'success':'1'}");现在
如下方式接收返回值没问题。
$.ajaxFileUpload({
url: saveurl,
secureuri:false,
fileElementId:'advertResource',
dataType: 'json',
data: {//加入的文本参数
"advertType":myadvertType, //广告类型
"advertisingName":$('#advertisingName').val(),
"beginDate":$('#beginDate').val(),
"endDate":$('#endDate').val(),
"eneityId":publisherId,
// "myurl":advertInfourl,
"picType":picType,
"location":advertTotal+1
},
success: function(data,status) {
if(data.success=='1'||data.success==1){
isAddFlag=true;
closeAddDiv();
alert("添加广告成功!");
advertTotal+=1;
}else{
alert("添加广告失败!");
}
},
error: function(data, status, e) {
alert("系统异常,添加 广告信息失败!");
closeAddDiv();
}
});
springmvc后台controller代码:这里除了上传文件外,还有自定义的其他参数。
只需要简单修改ajaxfileupload.js,就可以了。
@RequestMapping(value="/addAdvertInfo")
/*@ResponseBody*/
public void addAdvertisingInfo(HttpServletRequest request, HttpServletResponse response) {
PrintWriter out=null;
try {
out = response.getWriter();
boolean isUpload = ServletFileUpload.isMultipartContent(request);
if (isUpload) {
AdvertisingInfoPO advertObj = new AdvertisingInfoPO();
advertObj.setAdvertisingName(request
.getParameter("advertisingName"));
advertObj.setEntity(request.getParameter("eneityId"));
advertObj.setLocation(request.getParameter("location"));
//advertObj.setUrl(request.getParameter("myurl"));
advertObj.setType(Integer.parseInt(request
.getParameter("advertType")));
advertObj.setBeginDate(DateFormatUtil.parser("yyyy-MM-dd",
request.getParameter("beginDate")));
advertObj.setEndDate(DateFormatUtil.parser("yyyy-MM-dd",
request.getParameter("endDate")));
advertObj.setAdvertId(KeyUtil.getID());
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
CommonsMultipartFile mfile = (CommonsMultipartFile) multipartRequest.getFile("advertResource");
advertObj.setResource(mfile.getBytes());
advertObj.setResourceType(request.getParameter("picType"));
advertisingInfoService.create(advertObj);
}
} catch (Exception e) {
log.error("addAdvertisingInfo:添加广告信息失败。", e);
out.write("{'success':'0'}");
e.printStackTrace();
}
out.write("{'success':'1'}");
}
1.上传jsp。
<table cellpadding="0" cellspacing="0" border="0" class="ktable_9" >
<tr>
<td><input type="file" name="upoadFileName" id="upoadFileName"><a href="#" onclick="uploadFile();return false;"><span><span>上传</span></span></a></td>
</tr>
<tr>
<td> </td>
</tr>
</table>
2.下面是前端的js脚本:
function uploadFile(){
var myurl="/uploadMyFile.do?tenderInfoId="+tenderInfoId;
jQuery.ajaxFileUpload(
{
url:myurl,
secureuri:false,
fileElementId:'imgFile', --上传文件对应的文本域的id
dataType: 'json',
success: function (data, status)
{
alert('上传成功');
},
error: function (data, status, e)
{
alert('上传失败');
}
} );
}
3.这是后台的action:
public ActionForward uploadMyFile(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
/* =============禁止缓存============== */
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
/* =============禁止缓存============== */
response.setContentType("text/html;charset=UTF-8");
String filewholeName = "";
try {
CompanyApplyDTO applyDTO = (CompanyApplyDTO) form;
// FormFile formfile = applyDTO.getImgFile();
//--这种方式也可以,但CompanyApplyDTO 中应该有 一个这样的属性FormFile imgFile;
FormFile formfile = (FormFile) applyDTO.getMultipartRequestHandler()
.getFileElements().get("imgFile");
//--上传文件对应的文本域的id
String fileName = file.getFileName();
String fileSimpleName = fileName.substring(fileName
.lastIndexOf("."));
fileName = DateHandler.convertStringToDate(new Date(), null)
+ fileName;
if (file.getFileSize() > 50 * 1024 * 1024) {
write("{'result':false,'error':' filesize'}", response);
return null;
}
String uploadPath = this.getServlet().getServletContext()
.getRealPath("/")
+ "uploadfile/";
File savePath = new File(uploadPath);
System.out.println(savePath.getAbsolutePath());
if (!savePath.exists()) {
savePath.mkdir();
}
filewholeName = uploadPath + "/" + fileName;
FileOutputStream fos = new FileOutputStream(filewholeName);
fos.write(file.getFileData());
log.info("#############上传文件:" + fileName);
write("{'result':true}", response);
} catch (Exception e) {
write("{'result':false,'error':'" + e.getMessage() + "'}", response);
}
return null;
}
说明:
jaaxfileupload.js有可能执行错误,在接受返回值后,刚可将代码中
原为 : eval("data = "+data+ ); 替换为如下:
eval("data = \" "+data+" \" ");
原代码基于jquery 低版本,1.4.2之前, 在高版本jquery中执行会有错误,handleError函数在高版本中已经没有,需做相关处理,最简单是从jquery1.4.2中移植到这里。
eval("data = \" "+data+" \" ");
在springmvc中我如下返回 : out.write("{'success':'1'}");现在
如下方式接收返回值没问题。
$.ajaxFileUpload({
url: saveurl,
secureuri:false,
fileElementId:'advertResource',
dataType: 'json',
data: {//加入的文本参数
"advertType":myadvertType, //广告类型
"advertisingName":$('#advertisingName').val(),
"beginDate":$('#beginDate').val(),
"endDate":$('#endDate').val(),
"eneityId":publisherId,
// "myurl":advertInfourl,
"picType":picType,
"location":advertTotal+1
},
success: function(data,status) {
if(data.success=='1'||data.success==1){
isAddFlag=true;
closeAddDiv();
alert("添加广告成功!");
advertTotal+=1;
}else{
alert("添加广告失败!");
}
},
error: function(data, status, e) {
alert("系统异常,添加 广告信息失败!");
closeAddDiv();
}
});
springmvc后台controller代码:这里除了上传文件外,还有自定义的其他参数。
只需要简单修改ajaxfileupload.js,就可以了。
@RequestMapping(value="/addAdvertInfo")
/*@ResponseBody*/
public void addAdvertisingInfo(HttpServletRequest request, HttpServletResponse response) {
PrintWriter out=null;
try {
out = response.getWriter();
boolean isUpload = ServletFileUpload.isMultipartContent(request);
if (isUpload) {
AdvertisingInfoPO advertObj = new AdvertisingInfoPO();
advertObj.setAdvertisingName(request
.getParameter("advertisingName"));
advertObj.setEntity(request.getParameter("eneityId"));
advertObj.setLocation(request.getParameter("location"));
//advertObj.setUrl(request.getParameter("myurl"));
advertObj.setType(Integer.parseInt(request
.getParameter("advertType")));
advertObj.setBeginDate(DateFormatUtil.parser("yyyy-MM-dd",
request.getParameter("beginDate")));
advertObj.setEndDate(DateFormatUtil.parser("yyyy-MM-dd",
request.getParameter("endDate")));
advertObj.setAdvertId(KeyUtil.getID());
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
CommonsMultipartFile mfile = (CommonsMultipartFile) multipartRequest.getFile("advertResource");
advertObj.setResource(mfile.getBytes());
advertObj.setResourceType(request.getParameter("picType"));
advertisingInfoService.create(advertObj);
}
} catch (Exception e) {
log.error("addAdvertisingInfo:添加广告信息失败。", e);
out.write("{'success':'0'}");
e.printStackTrace();
}
out.write("{'success':'1'}");
}
- ajaxfileupload.js.rar (2.1 KB)
- 下载次数: 176
评论
2 楼
peixingchen
2015-06-29
你好,楼主,Action里面的CompanyApplyDTO类里面的代码是什么样的,能给出吗?
String fileName = file.getFileName(); 这句的file是从哪里来的?
还有,楼主能不能给个完整的demo?
String fileName = file.getFileName(); 这句的file是从哪里来的?
还有,楼主能不能给个完整的demo?
1 楼
BGX5810
2012-03-03
试试看把“dataType: 'json', ”换成“dataType: 'text', ”,我是这么解决的
发表评论
-
js日期遍历之化繁为简
2016-01-29 09:01 2924如何遍历js的两个日期之间的所有日期或固定时间间 ... -
js全部替换与保留指定字条的正则表达式应用
2014-11-26 17:49 2124虽然经常用正则表达式,发现有很多地方其实不了解,比如这里要说 ... -
jquery 滚动条底部自动加载
2014-09-04 10:43 899jquery 滚动条底部时自动加载更多信息, $(w ... -
滚动条到浏览器底部时自动加载js
2014-08-29 18:00 881$(window).scroll(function() { ... -
jquery验证框架之remote验证方法的扩展使用
2014-06-13 14:18 1069jquery验证框架之remote验 ... -
正则表达式处理img标签
2014-05-29 11:41 10534文章内容中包含有<img>标签内容,但有时候不 ... -
浏览器类型及版本判断
2014-04-09 11:55 1439ie6-10的判断可如下,当然可以 $.browser.m ... -
jquery 浏览器版本
2013-12-06 09:15 810function checkbrowse() { ... -
SecurityContext is empty or contents are anonymous处理
2013-11-30 10:14 6308最近用swfupload做上传,在火狐浏览器下上传操作时 出 ... -
文件上传利器SWFUpload使用指南
2013-11-18 14:44 1020文件上传利器SWFUpload使用指南 SWFUplo ... -
js通用跨浏览器回车提交方法
2013-10-24 17:42 1065$('input[type=text]').bind(&q ... -
js读取json文件数据
2013-09-11 14:17 58448通过jquery的 $.getJSON方法能很方便的读取:代码 ... -
javascript 特殊函数讲解
2013-07-26 09:17 1274javascript 特殊函数讲解 ... -
html表单不换行处理
2013-07-15 14:07 1320怪事情,全是字母或数字的时候,单元格不换行。 全中文可以换行 ... -
推荐一个jquery右下角弹出消息插件
2013-06-28 17:14 1192这插件真的不错,实现了在右下角弹出消息提示,调用非常简单 ... -
artDialog说明文档-jquery插件
2013-06-19 22:30 1551artDialog说明文档 artDialo ... -
jquery取得父页面元素
2013-05-27 11:27 8170jquery取得父页面元素方法。 有时候要去修改或取得父页面 ... -
jQuery validate框架使用说明
2013-05-24 15:10 1284官网地址:http:// ... -
jquery 验证remote参数值前面多了逗号,之问题
2013-05-15 16:47 1710jquery 验证remote参数值前 ... -
ie 火狐取得上传文件路径
2012-04-10 10:53 4008<html> <head> ...
相关推荐
### Spring2.5 + Struts1.3.8 + Hibernate3.0 整合知识点详解 #### 一、概述 Spring2.5 + Struts1.3.8 + Hibernate3.0 (简称SSH)整合是一种典型的Java Web开发模式,旨在通过组合这三种技术框架来构建高性能、易于...
本集成方案聚焦于Spring 4.2.5、Hibernate 4.3.11和Struts 1.3.8这三个特定版本的集成,以下将详细阐述它们的核心功能以及如何进行整合。 首先,Spring是Java企业级应用中的核心框架,它提供了依赖注入(DI)和面向...
本集成方案旨在提供一个基于Spring 4.2.5、Hibernate 4.3.11和Struts 1.3.8的完整开发环境,以帮助开发者构建高效、可维护的企业级Java Web应用程序。 首先,Spring框架是一个全面的后端开发框架,它提供了依赖注入...
5. **配置Struts**:修改Struts的配置文件(如`struts-config.xml`),定义动作映射和结果视图。 6. **整合Spring和Hibernate**:通过Spring的Hibernate模板或DAO支持,将数据库操作与业务逻辑解耦。 7. **整合...
struts1.3.8.chm帮助文档struts1.3.8.chm帮助文档struts1.3.8.chm帮助文档struts1.3.8.chm帮助文档
在实际开发中,学习 Struts 1.3.8 包括理解其核心概念、配置文件的编写、Action 类的设计、Form Beans 的使用以及 JSP 页面的开发。同时,熟悉其提供的标签库和错误处理机制也是必不可少的。对于那些对源码感兴趣的...
Struts1.3.8是该框架的一个版本,发布于2007年,它是对早期版本的更新,旨在提供更稳定、安全和功能丰富的平台。在本文中,我们将深入探讨Struts1.3.8的核心概念、功能以及它在Java Web开发中的重要性。 首先,...
Struts2.0.14、Spring2.5.6、Struts1.3.8以及Hibernate3.2是四个非常关键的Java Web开发框架,它们在2000年代末到2010年代初广泛应用于企业级应用中。这个压缩包文件包含了这些框架的核心组件,对于学习和理解SSH...
8. **Internationalization(国际化)**:Struts 1.3.8支持多语言环境,通过资源文件提供不同语言的文本。 9. **Exception Handling**:提供了一种全局的异常处理机制,可以统一处理应用程序中的异常。 10. **...
Struts 1.3.8 是 Apache Software Foundation 开发的 Struts 框架的一个版本,主要用于构建基于 Java 的企业级 Web 应用程序。这个框架是 Model-View-Controller (MVC) 设计模式的一个实现,它为开发人员提供了一种...
Struts 1.3.8 是 Apache 软件基金会开发的一个开源的 Web 应用框架,主要用于构建基于 Java 的企业级应用。该版本在 Struts 1.x 系列中是一个重要的里程碑,提供了许多改进和修复,以提高稳定性和性能。通过分析 ...
Struts1.3.8是Apache软件基金会的Java开源框架,用于构建企业级Web应用程序。这个框架基于Model-View-Controller(MVC)设计模式,为开发者提供了强大的控制层解决方案,帮助他们创建结构清晰、可维护性强的Java Web...
【标题】"导入工具+motrix1.3.8安装包.zip" 提供的是 Motrix 的一个特定版本,即1.3.8版的安装资源。Motrix 是一款多功能的下载管理器,支持多种协议,如HTTP、HTTPS、FTP、BT(BitTorrent)和磁力链接,让用户可以...
struts1.3.8API CHM struts1.3.8API CHM struts1.3.8API CHM
Struts1.3.8是Apache软件基金会的Java Web应用程序框架,主要用于构建MVC(Model-View-Controller)架构的应用程序。此版本是Struts1系列的一个稳定版本,提供了许多改进和修复,使得开发者能够在现有的Struts1项目...
5. **第三方库**:还包括了与Struts集成的其他第三方库,例如`commons-fileupload.jar`用于处理文件上传,`commons-logging.jar`提供日志服务,`commons-beanutils.jar`、`commons-collections.jar`和`commons-...
Struts1.3.8是该框架的一个稳定版本,包含了丰富的功能和改进,是开发者在J2EE平台上进行Web开发的重要工具。 在Struts1.3.8 API文档中,我们可以找到关于这个版本的所有核心组件、类库和接口的详细信息,这对于...
标题中的“较全的struts1.3.8-apps”意味着这个压缩包可能包含了一系列与Struts 1.3.8框架相关的应用示例、库文件和资源,旨在为开发者提供一个学习和参考的平台。这些应用程序实例通常展示了如何在实际项目中运用...
Apexdc++ 是一个开放源码的免费的P2P客户端软件,用于文件交流,支持中文搜索,同时又可以作为聊天工具。基于 StrongDC++ 和 DC++ 进行开发,相比于前两者有更多的选项和功能可用。常常用于局域网中的高速文件共享。
这个“struts1.3.8-lib”压缩包包含了运行Struts1应用程序所必需的库文件,为开发者提供了构建基于Model-View-Controller(MVC)架构的Web应用的强大支持。本文将深入探讨Struts1的核心组件和关键知识点。 1. **MVC...