<html>
<head></head>
<body>
<s:fielderror />
<s:form action="FileUploadAction" method="post" enctype="multipart/form-data">
<s:file name="file" label="File" />
<s:submit/>
</s:form>
</body>
</html>
<action name="FileUploadAction" class="fileUploadAction">
<!-- 配置 fileupload 的拦截器 -->
<interceptor-ref name="fileUpload">
<!-- 可以支持上传的文件类型 -->
<param name="allowedTypes">
image/bmp,image/png,image/gif,image/jpeg,image/jpg
</param>
<!-- 设置上传文件的大小不能超过1M -->
<param name="maximumSize">1024*1024</param>
</interceptor-ref>
<interceptor-ref name ="defaultStack" />
<param name="savePath">/upload</param>
<result name="success">/successFileUpload.jsp</result>
<result name="input">/fileUpload.jsp</result>
</action>
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.struts2.ServletActionContext;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("all")
@Scope("prototype")
@Controller("fileUploadAction")
public class FileUploadAction extends ActionSupport {
@Override
public String execute() throws Exception {
if (file != null) {
InputStream in = null;
OutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(getFile()));
out = new BufferedOutputStream(new FileOutputStream(getSavePath() + "//" + getFileFileName()));
byte [] buff = new byte[1024];
int len = 0;
while ((len = in.read(buff)) > 0) {
out.write(buff, 0, len);
}
out.flush();
} catch(Exception ex) {
ex.printStackTrace();
} finally {
in.close();
out.close();
}
return SUCCESS;
}
return INPUT;
}
private File file;
private String fileFileName;
private String fileContentType;
private String savePath;
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public String getSavePath() {
return ServletActionContext.getServletContext().getRealPath(savePath);
}
}