在struts2中上传文件

在struts2中上传文件变得非常的简单
1、定于struts2Action类
public class WorkFlowAction extends BaseAction {
	
	private File image;
	
	private File definition;

public String addWorkFlow() {
		try {
//使用FileUtils工具类将java.io.File类型转换为byte[]类型,然后直接调用后台的业务逻辑方法存储
			byte[] byteForImage = FileUtils.readFileToByteArray(image);
			byte[] byteForDefinition = FileUtils.readFileToByteArray(definition);
			this.workFlowService.addWorkFlow(byteForDefinition, byteForImage);
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException("文件没有找到");
		}
		return execute();
	}

}


2、页面上传文件展示:
<form action="workflow!addWorkFlow.action" enctype="multipart/form-data" method="post">
	    			请选择流程定义图片:<input type="file" name="image"><br>
	    			请选择流程定义文件: <input type="file" name="definition"><br>
	    			<input type="submit" value="上传">
	    		</form>


3、利用hibernate的注解定义byte[]类型
@Entity
@Table(name="t_workflow")
public class WorkFlow {
	@Id
	@GeneratedValue
	private int id;
//二进制类型
	@Type(type="binary")
//指定一下长度,数据库默认的存储容量64k,所以指定一下大小否则很容易上传的文件就放不下
	@Column(length=99999999)
	private byte[] processImage; //流程定义图片
	@Type(type="binary")
	@Column(length=99999999)
	private byte[] processDef;//流程定义文件
	private String name;
}

你可能感兴趣的:(html,Hibernate,workflow)