上传的上传、下载、查看
配置xml就不多说了
新建action类,然后继承baseAction(我把baseAction的内容丢最下面)
设置四个属性
给这四个属性设置get、set方法
private File file;
private String fileFileName;
private String fileContentType;
/**
* 虚拟路径
* 虚拟路径是存在服务器中,真实路径是本地
*/
private String serverDir = "/Upload";
获取文件夹的真实路径
private String getRealPath(String Path) {
return this.request.getServletContext().getRealPath(Path);
}
上传
public String upload() throws IOException {
System.out.println("名字" + fileFileName);
System.out.println("类型" + fileContentType);
//真实路径
String realPath = getRealPath(serverDir + "/" + fileFileName);
System.out.println(realPath);
//复制
FileUtils.copyFile(file, new File(realPath));
return "Interceptor";
}
下载
public String save() throws IOException {
//数据库获得
String filename = "img1.jpg";
String filetype="image/jpg";
response.setContentType(filetype);
response.setHeader("Content-Disposition","attachment;filename=" + filename);
String realPath=getRealPath(serverDir + "/" + filename);
FileUtils.copyFile(new File(realPath),response.getOutputStream());
return null;
}
直接显示图片
public String open() throws IOException {
//数据库获得
String filename = "img1.jpg";
String filetype="image/jpg";
response.setContentType(filetype);
response.setHeader("Content-Disposition","filename=" + filename);
String realPath=getRealPath(serverDir + "/" + filename);
FileUtils.copyFile(new File(realPath),response.getOutputStream());
return null;
}
baseAction的的代码
package com.hhh.web;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
/**
* 每一个开发的子控制器要用的属性都定义在通用的action中。
* @author Administrator
*
*/
public class BaseAction implements ServletRequestAware, ServletResponseAware{
/**
* 为了传值使用
*/
protected HttpServletResponse response;
protected HttpServletRequest request;
protected HttpSession session;
protected ServletContext application;
/**
* 为了配置跳转页面所用
*/
protected final static String SUCCESS = "success";
protected final static String FAIL = "fail";
protected final static String LIST = "list";
protected final static String ADD = "add";
protected final static String EDIT = "edit";
protected final static String DETAIL = "detail";
/**
* 具体传值字段 后端向jsp页面传值所用字段
*/
protected Object result;
protected Object msg;
protected int code;
public Object getResult() {
return result;
}
public Object getMsg() {
return msg;
}
public int getCode() {
return code;
}
@Override
public void setServletResponse(HttpServletResponse arg0) {
this.response = arg0;
}
@Override
public void setServletRequest(HttpServletRequest arg0) {
this.request = arg0;
this.session = arg0.getSession();
this.application = arg0.getServletContext();
}
}