java struts2图片上传_在struts2中实现文件上传(以图片上传为例)

Java代码packagecom.chris;import java.io.*;importjava.util.Date;importorg.apache.struts2.ServletActionContext;importcom.opensymphony.xwork2.ActionSupport;public class FileUploadAction extendsActionSupport{private static final long serialVersionUID = 572146812454l;private static final int BUFFER_SIZE = 16 * 1024;//注意,文件上传时同时与myFile,myFileContentType,myFileFileName绑定//所以同时要提供myFileContentType,myFileFileName的set方法

private File myFile; //上传文件

private String contentType;//上传文件类型

private String fileName; //上传文件名

privateString imageFileName;private String caption;//文件说明,与页面属性绑定

public voidsetMyFileContentType(String contentType) {

System.out.println("contentType : " +contentType);this .contentType =contentType;

}public voidsetMyFileFileName(String fileName) {

System.out.println("FileName : " +fileName);this .fileName =fileName;

}public voidsetMyFile(File myFile) {this .myFile =myFile;

}publicString getImageFileName() {returnimageFileName;

}publicString getCaption() {returncaption;

}public voidsetCaption(String caption) {this .caption =caption;

}private static voidcopy(File src, File dst) {try{

InputStream in= null;

OutputStream out= null;try{

in= new BufferedInputStream( newFileInputStream(src), BUFFER_SIZE);

out= new BufferedOutputStream( newFileOutputStream(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) {

e.printStackTrace();

}

}private staticString getExtention(String fileName) {int pos = fileName.lastIndexOf(".");returnfileName.substring(pos);

}

@OverridepublicString execute() {

imageFileName= new Date().getTime() +getExtention(fileName);

File imageFile= new File(ServletActionContext.getServletContext().getRealPath("/UploadImages" ) + "/" +imageFileName);

copy(myFile, imageFile);returnSUCCESS;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值