Struts2 annotation convention upload file 注释上传文件

本文介绍了一个使用Struts2框架的文件上传Action实现案例。该Action利用注解配置了文件类型过滤及最大文件大小限制,并实现了文件上传逻辑,包括文件复制、解压及返回上传状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Struts2 annotation convention upload file 注释上传文件
@InterceptorRefs({@InterceptorRef(value="fileUpload", params=

{"allowedTypes","image/bmp,image/PNG,image/gif,image/JPEG,image/JPG,image/jpg,application/x-

zip-compressed","maximumSize","20971520"}
),@InterceptorRef(value="defaultStack")})
@SuppressWarnings("serial")
public class UploadFileAction extends ActionSupport {

private File file;

private String fileFileName;

private String fileContentType;

public String getFileContentType() {
return fileContentType;
}

public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}

public String getFileFileName() {
return fileFileName;
}

public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}

public void setFile(File file) {
this.file = file;
}

public File getFile(){
return file;
}

public String execute(){
System.out.println("begin upload file.... ");


LinkPath link = LinkPath.newInstance();
String dataPath = link.getdataPath();

DateFormat format = new SimpleDateFormat("yyyyMMddHHmm");
Date date=new Date();
String dateDir = format.format(date);
File f = new File(dataPath+"\\"+dateDir);

if(!f.exists()){
f.mkdirs();
}

File dataFile = new File(dataPath+"\\"+dateDir+"\\"+this.getFileFileName());

try {
//将第一个参数对应的 文件 copy 到 第二个参数对应的文件中
FileUtil.copyFile(this.file,dataFile);


if(dataFile.exists()){

String fileType = dataFile.getPath().substring

(dataFile.getPath().lastIndexOf("."),dataFile.getPath().length());

if(".zip".equals(fileType)||".ZIP".equals(fileType)){
UpZIP zip = new UpZIP();

zip.unzip(dataFile.getPath(), dataPath+"\\"+dateDir);

dataFile.delete();
}
}

Struts2Utils.renderText("{success:true,message:'上传成功'}");
} catch (IOException e) {
Struts2Utils.renderText("{success:flase,message:'失败'}");
e.printStackTrace();
}
return null;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值