/* ================================================================== * Created [2009-4-27 下午11:32:55] by Jon.King * ================================================================== * TSS * ================================================================== * mailTo:jinpujun@hotmail.com * Copyright (c) Jon.King, 2009-2012 * ================================================================== */ package com.jinhe.tss.component.support.web.upload; import java.io.File; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import com.jinhe.tss.core.exception.BusinessException; /** * <p> FileDownloadManager.java </p> * <p> * 文件上传管理对象 * </p> */ public class FileUploadManager { /** * 上传文件检查器:可以过滤哪些文件能上传,哪些文件不能上传, * 实现接口com.jinhe.tss.component.support.web.upload.IFileUploadValidator。 * 通常情况下可以使用后缀校验对象:com.jinhe.tss.component.support.web.upload.SuffixFileValidator * 不指定则不校验。 */ @Autowired private IFileUploadValidator validator; //文件检查对象 /** * 文件上传后处理对象:一般为复制、移动、保存文件等, * 实现接口com.jinhe.tss.component.support.web.upload.IFileUploadProcessor。 * 通常情况下可以使用文件复制处理对象:com.jinhe.tss.component.support.web.upload.FileCopyProcessor * 不指定则不做任何事情。 */ @Autowired private IFileUploadProcessor processor; /** * 文件上传处理完成后扩展对象:一般为处理文件上传完成后对文件或相关数据的处理,组织返回信息 * 实现接口com.jinhe.tss.component.support.web.upload.IFileUploadExtender * 不指定则默认返回“文件上传成功” */ @Autowired private IFileUploadExtender extender; /** * <p> * 文件上传处理过程 * </p> * @param file 需要上传的文件 * @param params 上传文件相关参数 * @return Object 返回前台的数据对象,必须覆盖toString方法为输出前台代码 */ public Object upload(File file, Map<String, String> params) { //文件合法性检测 if (validator != null && !validator.validate(file, params)) { throw new BusinessException(validator.getErrorMessage()); } //文件处理 if(processor != null) { file = processor.execute(file, params); } //文件后续操作 if(extender != null) { return extender.excute(file, params); } return null; } }