Struts2之文件上传

来源:互联网 发布:windows一键还原按什么 编辑:程序博客网 时间:2024/05/24 01:37

一、准备工作

要想实现文件上传,就必须要在我们的项目中导入两个jar包,分别是:Commons-fileupload-x.x.x.jar和Commons-io-x.x.x.jar.

注:jar包的版本取决于当前项目使用的struts2 的版本。

二、实现文件上传

1、准备上传的页面。

2、开发实现文件上传的Action。

package action;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;


import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;


import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;


public class FileUpload extends ActionSupport {
private File img;
private String imgFileName;
private String imgContextType;
@Override
public String execute()  {
System.out.println(imgFileName+"   "+imgContextType);
String realPath=ServletActionContext.getServletContext()
.getRealPath("images")+File.separator+imgFileName;
try {
//1
/* InputStream is=new FileInputStream(img);
OutputStream os=new FileOutputStream(realPath);
byte[] by=new byte[is.available()];
is.read(by);
os.write(by);
os.close();
is.close();*/
//2
/* InputStream is=new FileInputStream(img);
OutputStream os=new FileOutputStream(realPath);
byte[] by=new byte[1024];
while(is.read(by)!=-1){
os.write(by, 0, by.length);
}*/
//3
FileUtils.copyFile(img, new File(realPath));

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return "success";
}

/
/省略set和get方法

}

3、配置文件上传信息

实现以上信息,就可以实现文件的上传了。


0 0
原创粉丝点击