1.文件上传
第一步:在WEB-INF/lib下加入commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar。这两个文件可以从http://commons.apache.org/下载。
第二步:把form表的enctype设置为:“multipart/form-data“,如下:
<form enctype="multipart/form-data" action="${pageContext.request.contextPath}/xxx.action" method="post">
<input type="file" name="uploadImage">
</form>
第三步:在Action类中添加以下属性,属性红色部分对应于表单中文件字段的名称:
public class HelloWorldAction{
private File uploadImage;//得到上传的文件
private String uploadImageContentType;//得到文件的类型
private String uploadImageFileName;//得到文件的名称
//这里略省了属性的getter/setter方法
public String upload() throws Exception{
String realpath = ServletActionContext.getServletContext().getRealPath("/images");
File file = new File(realpath);
if(!file.exists()) file.mkdirs();
FileUtils.copyFile(uploadImage, new File(file, uploadImageFileName));
return "success";
}
}
2.多文件上传
第一步:在WEB-INF/lib下加入commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar。这两个文件可以从http://commons.apache.org/下载。
第二步:把form表的enctype设置为:“multipart/form-data“,如下:
<form enctype="multipart/form-data" action="${pageContext.request.contextPath}/xxx.action" method="post">
<input type="file" name="uploadImages">
<input type="file" name="uploadImages">
</form>
第三步:在Action类中添加以下属性,属性红色部分对应于表单中文件字段的名称:
public class HelloWorldAction{
private File[] uploadImages;//得到上传的文件
private String[] uploadImagesContentType;//得到文件的类型
private String[] uploadImagesFileName;//得到文件的名称
//这里略省了属性的getter/setter方法
public String upload() throws Exception{
String realpath = ServletActionContext.getServletContext().getRealPath("/images");
File file = new File(realpath);
if(!file.exists()) file.mkdirs();
for(int i=0 ;i<uploadImages.length; i++){ File uploadImage = uploadImages[i];
FileUtils.copyFile(uploadImage, new File(file, uploadImagesFileName[i]));
}
return "success";
}}
3.获取HttpServletRequest / HttpSession / ServletContext / HttpServletResponse对象
方法一,通过ServletActionContext.类直接获取:
public String rsa() throws Exception{
HttpServletRequest request = ServletActionContext.getRequest();
ServletContext servletContext = ServletActionContext.getServletContext();
request.getSession()
HttpServletResponse response = ServletActionContext.getResponse();
return "scope";
}
方法二,实现指定接口,由struts框架运行时注入:
public class HelloWorldAction implements ServletRequestAware, ServletResponseAware, ServletContextAware{
private HttpServletRequest request;
private ServletContext servletContext;
private HttpServletResponse response;
public void setServletRequest(HttpServletRequest req) {
this.request=req;
}
public void setServletResponse(HttpServletResponse res) {
this.response=res;
}
public void setServletContext(ServletContext ser) {
this.servletContext=ser;
}
}
分享到:
相关推荐
光伏短期功率预测-靳晓松-201810201
光伏短期功率预测-靳晓松-201810211
资源名称:Windows内核实现的34个关键问题资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
产品经理数据分析手册(于晓松)
多媒体技术教程(修订版) 人民邮电出版社
LTE-A中small cell场景中高阶调制中自适应调制编码技术研究,刘晓松,温志刚,本文主要对LTE-A系统中的高阶调制关键技术进行研究。本文主要研究在当前的LTE-A通信系统中的一些特定场景中引入更高阶调制技术,进��
云计算开放的概念与开放大学的观念不谋而合,开放才能有共享,才能有更好的交流。开放大学在做更多和行业企业结合,更多强调实用,开放、共享、选择、应用,最后实现公共服务。
本文借鉴采用《中国城市统计年鉴》公布的天然气和液化 石油气,全社会用电量,城市供热(蒸汽供热、火力电厂供热)四部分能源消耗量,通过标 准煤折算系数得到能源消耗总量。 煤炭占比采用两种方法: 1.包括城市供热...
环境规制综合指数是由工业废水排放量、工业 SO2 排放量以及工业烟尘排放量计算而来(表格中有详细的三废排放量及具体计算过程和公式,如有不会,可参照下述参考文献查看) 具体计算方法:(1)将工业废水排放量、...
软件问题清单项目名称图书管理系统文档名称图书管理系统需求规格说明书版本号V1.2提交日期2016-11-17编制人王晓松评审日期2016-12-16评审人周易序
导体和电器选择设计技术规定
有机磷毒剂敏感材料的气敏特性研究,胡佳,杜晓松,本文报道了分别以苯酚、2-氟苯酚、3-氟苯酚、2,3-二氟苯酚、3-氟甲基苯酚为官能团的5种聚硅氧烷类敏感材料的合成路径和甲基磷酸二甲�
" "最后,提出了计算机网络安全措施及其解决方案,以及网络安全的关键技术和提高计算机网络安全的教育和网络安全政策" "的法律法规。 " "三、研究的方法: " ".对网络安全定义、内容、特征与重要性进行分析,讲解。...
更多信息:用于耦合环流模型的基于天气类型的跨时间尺度诊断框架 Ángel G. Muñoz; 杨晓松; 加布里埃尔·A·维奇; 安德鲁·W·罗伯逊; 威廉 F. 库克 J. 气候 (2017) 30 (22): 8951–8972。 天气类型 Matlab 和 ...
阐述选煤生产过程中针对水、电、煤等方面节能及煤尘等方面减排环保采取的措施,通过强化责任管理、建立有效节能考核机制、合理组织生产降低电耗、加强技术改造降低能耗,确保选煤行业健康发展。
[日期:2005-1-12] 来源:电子技术应用 作者:第二炮兵工程学院 陈德国 郭晓松 于传强 冯家安 [字体:大 中 小] 摘要:为了解决某装置故障诊断的难题,提出了一种基于PC104总线的便携式故障诊断装置的...
面向产品经理,从建立数据分析的能力体系,到相关的书籍、方法、工具推荐,再到数据产品经理岗位介绍、日常工作的转化分析和迭代案例。为产品经理们提供了数据分析技能提升的整体框架和思路,相当全面。
基于STC单片机的家用无线音乐门铃改进设计.pdf