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;
}
}