action代码如下
package com.szhifly.railroadjx.product.action;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.struts2.util.ServletContextAware;
import com.szhifly.railroadjx.product.entity.ProductInfo;
import com.szhifly.railroadjx.product.entity.ProductTemplet;
import com.szhifly.railroadjx.common.BaseAction;
import com.szhifly.railroadjx.common.ConditionData;
import com.szhifly.railroadjx.common.DateUtils;
import com.szhifly.railroadjx.common.Db;
import com.szhifly.railroadjx.product.logic.interf.IProductInfoLogic;
import com.szhifly.railroadjx.product.logic.interf.IProductTempletLogic;
import java.io.*;
import java.net.URLDecoder;
import javax.servlet.ServletContext;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
public class test implements ServletContextAware {
private static Logger log = Logger.getLogger(ProductInfoAction.class);
//对应jsp页面中的<s:file name="doc" label="File" >name
private File doc;
private String fileName;
private String contentType;
private ServletContext context;
public void setDoc(File file) {
this.doc = file;
}
public void setDocFileName(String fileName) {
this.fileName = fileName;
}
public void setDocContentType(String contentType) {
this.contentType = contentType;
}
public void setServletContext(ServletContext context) {
this.context = context;
}
public ServletContext getContext() {
return context;
}
public void setContext(ServletContext context) {
this.context = context;
}
//上传文件
public String uplaodFile()throws Exception {
String targetDirectory="";
String targetFileName="";
targetDirectory="D:\\file";
targetFileName = generateFileName(fileName);
File target =new File(targetDirectory, targetFileName);
FileUtils.copyFile(doc, target);
return "success";
}
//获取某月所在的季度的所有月份
private String getMonthFor3(int year,int month){
int array[][] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
int season = 1;
if(month>=1&&month<=3){
season = 1;
}
if(month>=4&&month<=6){
season = 2;
}
if(month>=7&&month<=9){
season = 3;
}
if(month>=10&&month<=12){
season = 4;
}
String returnString="";
for(int i=0;i<3;i++){
String tempMon=""+array[season-1][i];
if(tempMon.length()==1){
tempMon="0"+tempMon;
}
if("".equals(returnString)){
returnString+="'"+year+"-"+tempMon+"'";
}else{
returnString+=",'"+year+"-"+tempMon+"'";
}
}
return returnString;
}
//获取重新的名字
private String generateFileName(String fileName) {
int position = fileName.lastIndexOf(".");
String extension = fileName.substring(position); //获取后缀
String desfileName=DateUtils.getCurrentDate("yyyyMMddHHmmss")+"_"+(new Date()).getTime();
return desfileName + extension;
}
}
jsp代码如下,form 必须加入enctype 这个属性,否则会失败的,doc 对应action的doc
<s:form name="createForm" action="/test.action" method="post" enctype="multipart/form-data" >
<s:file name="doc" label="File" ></s:file>
</s:form>
分享到:
相关推荐
Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。从而我们就能够以本地文件方式的操作浏览器上传的...
该代码简单实现了struts2文件上传功能,适合初学者和没有了解过struts2文件上传功能的同学下载。由于过于简单,不建议已经知道struts2上传功能如何使用的同学下载,那会浪费你的金币。同时这个也是广州大学华软软件...
struts实现的文件上传下载功能,最大可以上传到150MB
基于Struts2的文件上传下载功能的完整源代码。经过测试可正确运行。
struts2 实现多文件上传功能,是一个很好的学习参考资料
Struts2实现文件上传的功能,简洁方便,欢迎下载。
struts1和struts2分别实现文件上传下载功能
需求 1.能够对多个文件进行上传(可以选择上传文件个...提供多文件上传,上传成功后,提供刚上传的文件下载功能(其他的都可以在其上面进行扩充) 多文件 上传 下载 随意文件 java Struts2 单例 配置 动态读取 李顺利
自己做的一个struts2 实现文件批量上传功能,
JSP文件上传功能,用于实现Struts上传功能
主要为大家详细介绍了SSH框架网上商城项目第13战之Struts2文件上传功能的相关资料,感兴趣的小伙伴们可以参考一下
能够指定路径,指定文件类型上传到服务器或本机
Struts2框架实现文件上传功能
使用struts实现文件上传功能
Struts2的上传功能还是很强大的,它可以自动拦截上传文件的相关信息,很简单……
一个利用Struts2实现文件的上传下载,使用的是同步方式。没有用ajax请求
该项目采用的是典型的struts2框架,在此框架之上实现了多文件上传的功能。
这是一个struts2实例 涉及的技术包括: 1.自定义过滤器 2.文件上传下载 3.登录功能 等等
4.4.1 Struts2文件上传功能开发 61 4.4.2 Struts2文件下载功能开发 68 第5章 Struts2标签库 73 5.1 Struts2标签使用原理解疑 73 5.2 OGNL表达式语言介绍 75 5.3 Struts2控制标签简介 79 5.3.1 append标签使用介绍 79...
文件上传这个功能是很多网站都要有的,当然,Struts2对文件上传也进了支持,可以说,使用Struts实现文件上传是非常简单且方便的。