struts2图片上传
三种上传方案
1、上传到tomcat服务器 缺点:上传图片的存放位置与tomcat服务器的耦合度太高,不常用
2、在数据库表中建立二进制字段,将图片存储到数据库,缺点:直接把图片存放到了数据库,太占取空间
3、上传到指定文件目录,添加服务器与真实目录的映射关系,从而解耦上传文件与tomcat的关系
今天来写第三种,基于上次的代码修改一下
ClazzAction
package com.hc.crud.web;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import com.hc.crud.dao.ClazzDao;
import com.hc.crud.entity.Clazz;
import com.hc.crud.util.BaseAction;
import com.hc.crud.util.PageBean;
import com.opensymphony.xwork2.ModelDriven;
public class ClazzAction extends BaseAction implements ModelDriven<Clazz> {
private Clazz clz = new Clazz();
private ClazzDao clzDao = new ClazzDao();
// 这里的属性名要和表单里的name对应 xxx
private File file;
// xxxFileName
private String fileFileName;
// xxxContentType
private String fileContentType;
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 String list() {
PageBean pageBean = new PageBean();
pageBean.setRequest(request);
try {
List<Clazz> list = this.clzDao.list(clz, pageBean);
request.setAttribute("clzList", list);
request.setAttribute("pageBean", pageBean);
} catch (InstantiationException | IllegalAccessException | SQLException e) {
e.printStackTrace