SpringBoot文件上传和自定义实体工具

简介: SpringBoot文件上传和自定义实体工具
 
 
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
import javax.servlet.http.HttpServletRequest;
 
import org.apache.commons.fileupload.FileUploadException;
import org.springframework.web.multipart.MultipartFile;
 
import com.yuanchuangyun.commons.entity.FileEntity;
 
 
public class UploadFileUtils {
  
  /**
   * uploadFile:(上传单个文件调用方法)
   * TODO(这里描述这个方法适用条件 – 可选)
   * TODO(这里描述这个方法的执行流程 – 可选)
   * TODO(这里描述这个方法的使用方法 – 可选)
   * TODO(这里描述这个方法的注意事项 – 可选)
   *
   * @param  @param request HttpServletRequest
   * @param  @param file MultipartFile文件
   * @param  @param fileBusiness 
   * @param  @param userId
   * @param  @return    设定文件
   * @return FileEntity    DOM对象
   * @throws 
   * @since  CodingExample Ver 1.1
   */
  public static FileEntity uploadFile(HttpServletRequest request,MultipartFile file,String fileBusiness,String userId)throws FileUploadException{
    FileEntity fileEntity = new  FileEntity();
    try {
    //取得当前上传文件的文件名称  
        String myFileName = file.getOriginalFilename();
        //重命名上传后的文件名  
        String suffix = myFileName.substring(myFileName.lastIndexOf("."), myFileName.length());
      String filePath = request.getSession().getServletContext().getRealPath("upload");
      Date nowDate = new Date();
      String businessPuth = File.separator+userId+File.separator+fileBusiness+File.separator;
      String newFileName =nowDate.getTime()+suffix;
      fileEntity.setFilePath(File.separator+"upload"+businessPuth+newFileName);//FileModelServiceImpl.java 同步修改
      fileEntity.setFileName(myFileName);
      fileEntity.setSuffix(suffix);
      File newFile = new File(filePath+businessPuth);
      if(!newFile.exists()){
        newFile.mkdirs();
      }
        //定义上传路径  
        File localFile = new File(filePath+businessPuth+newFileName);  
    file.transferTo(localFile);
    } catch (IllegalStateException e) {
      
      // TODO Auto-generated catch block
      e.printStackTrace();
      throw new FileUploadException("IllegalStateException",e);
      
    } catch (IOException e) {
      
      // TODO Auto-generated catch block
      e.printStackTrace();
      throw new FileUploadException("IOException",e);
    } 
    return fileEntity;
  }
  
  /**
   * uploadFile:(上传多个文件调用方法)
   * TODO(这里描述这个方法适用条件 – 可选)
   * TODO(这里描述这个方法的执行流程 – 可选)
   * TODO(这里描述这个方法的使用方法 – 可选)
   * TODO(这里描述这个方法的注意事项 – 可选)
   *
   * @param  @param request HttpServletRequest
   * @param  @param file MultipartFile文件
   * @param  @param fileBusiness 
   * @param  @param userId
   * @param  @return    设定文件
   * @return FileEntity    DOM对象
   * @throws 
   * @since  CodingExample Ver 1.1
   */
  public static List<FileEntity> uploadFiles(HttpServletRequest request,MultipartFile[] files,String fileBusiness,String userId)throws FileUploadException{
    List<FileEntity> fileEntitys= new ArrayList<FileEntity>();
    try {
      for(MultipartFile file : files){
        FileEntity fileEntity = new  FileEntity();
        //取得当前上传文件的文件名称  
            String myFileName = file.getOriginalFilename();
            //重命名上传后的文件名  
            String suffix = myFileName.substring(myFileName.lastIndexOf("."), myFileName.length());
          String filePath = request.getSession().getServletContext().getRealPath("upload");
          Date nowDate = new Date();
          String businessPuth = File.separator+userId+File.separator+fileBusiness+File.separator;
          String newFileName =nowDate.getTime()+suffix;
          fileEntity.setFilePath(File.separator+"upload"+businessPuth+newFileName);
          fileEntity.setFileName(myFileName);
          fileEntity.setSuffix(suffix);
          File newFile = new File(filePath+businessPuth);
          if(!newFile.exists()){
            newFile.mkdirs();
          }
            //定义上传路径  
            File localFile = new File(filePath+businessPuth+newFileName);  
        file.transferTo(localFile);
        fileEntitys.add(fileEntity);
      }
    } catch (IllegalStateException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      throw new FileUploadException("IllegalStateException",e);
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      throw new FileUploadException("IOException",e);
    } 
    return fileEntitys;
  }
  
  /*
   * 获得上传文件的根目录
   */
  public static String getBaseUploadLocation(HttpServletRequest request){
    return request.getSession().getServletContext().getRealPath(File.separator);
  }
}
 

文件实体封装

 
 
 
public class FileEntity implements java.io.Serializable{
 
  /**
   *
   * @since Ver 1.1
   */
  
  private static final long serialVersionUID = 3835833847440273964L;
  
  /**
   * 文件名称
   */
  private String fileName;
  
  /**
   * 后缀名
   */
  private String suffix;
  
  /**
   * 从 /upload/开始 的绝对路径文件名 
   */
  private String filePath;
 
  public String getFileName() {
    return fileName;
  }
 
  public void setFileName(String fileName) {
    this.fileName = fileName;
  }
 
  public String getSuffix() {
    return suffix;
  }
 
  public void setSuffix(String suffix) {
    this.suffix = suffix;
  }
 
  public String getFilePath() {
    return filePath;
  }
 
  public void setFilePath(String filePath) {
    this.filePath = filePath;
  }
 
}
 


相关文章
|
20天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
38 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
27天前
|
缓存 IDE Java
SpringBoot入门(7)- 配置热部署devtools工具
SpringBoot入门(7)- 配置热部署devtools工具
42 1
SpringBoot入门(7)- 配置热部署devtools工具
|
1月前
|
缓存 IDE Java
SpringBoot入门(7)- 配置热部署devtools工具
SpringBoot入门(7)- 配置热部署devtools工具
43 2
 SpringBoot入门(7)- 配置热部署devtools工具
|
2月前
|
Java BI API
spring boot 整合 itextpdf 导出 PDF,写入大文本,写入HTML代码,分析当下导出PDF的几个工具
这篇文章介绍了如何在Spring Boot项目中整合iTextPDF库来导出PDF文件,包括写入大文本和HTML代码,并分析了几种常用的Java PDF导出工具。
593 0
spring boot 整合 itextpdf 导出 PDF,写入大文本,写入HTML代码,分析当下导出PDF的几个工具
|
3月前
|
Java 应用服务中间件 Spring
IDEA 工具 启动 spring boot 的 main 方法报错。已解决
IDEA 工具 启动 spring boot 的 main 方法报错。已解决
|
4月前
|
安全 Java Spring
Spring Boot 关闭 Actuator ,满足安全工具扫描
Spring Boot 关闭 Actuator ,满足安全工具扫描
582 0
|
7月前
|
前端开发 Java Linux
性能工具之 Jmeter 通过 SpringBoot 工程启动
【5月更文挑战第22天】性能工具之 Jmeter 通过 SpringBoot 工程启动
118 8
性能工具之 Jmeter 通过 SpringBoot 工程启动
|
6月前
|
前端开发 Java 程序员
Spring Boot (十五): 优雅的使用 API 文档工具 Swagger2
Spring Boot (十五): 优雅的使用 API 文档工具 Swagger2
|
6月前
|
Java API Spring
集成EasyPoi(一个基于POI的Excel导入导出工具)到Spring Boot项目中
集成EasyPoi(一个基于POI的Excel导入导出工具)到Spring Boot项目中
572 1
|
6月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的小说实体书商城的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的小说实体书商城的详细设计和实现
45 0
下一篇
DataWorks