您的位置:首页 > 编程语言 > Java开发

struts2 文件上传

2011-12-26 16:03 253 查看
点击上传:

<body>
<s:form action="FileUploadAction" method="POST" enctype="multipart/form-data">
<s:file name="upload" label="文件名"/>
<s:submit value="上传"/>
</s:form>
</body>


action处理:

package pkg;

import java.io.*;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class FileUploadAction extends ActionSupport{
//定义私有属性
private File upload;
//private static final int FILE_SIZE=16*1024;
private String uploadContentType;  //必须有,有框架要用
private String uploadFileName;    //必须有,有框架要用

// 构造方法
public FileUploadAction(){}

// 为私有属性生产get和set方法
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}

// 上传文件
public void uploadFile(File source,File target){
try{
// 资源文件向外读取
FileInputStream fis=new FileInputStream(source);
DataInputStream dis=new DataInputStream(fis);
// 资源文件向里写
FileOutputStream fos=new FileOutputStream(target);
DataOutputStream dos=new DataOutputStream(fos);
int temp=0;
while((temp=dis.read())!=-1){
dos.write(temp);
}
dis.close();
fis.close();
dos.close();
fos.close();
}catch(Exception ex){
ex.printStackTrace();
}
}

public String execute() throws Exception{
String filePath=ServletActionContext.getServletContext().getRealPath("upload")
+ "\\"+uploadFileName;
File target=new File(filePath);
uploadFile(upload,target);
return SUCCESS;
}
}


struts配置:

<action name="FileUploadAction" class="pkg.FileUploadAction">
<interceptor-ref name="defaultStack">
<param name="fileUpload.allowedTypes">
image/bmp,image/png,image/gif,image/jpeg,
image/jpg,image/x-png,image/pjpeg
</param>
<!-- 配置文件上传允许的大小 1M-->
<param name="fileUpload.maximumSize">1048576</param>
</interceptor-ref>
<result name="input">fileUpload.jsp</result>
<result name="success">index.jsp</result>
</action>


其中,文件上传类型约束:"fileUpload.allowedTypes"

文件上传大小约束:"fileUpload.maximumSize"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: