Java类:team.bangbang.common.servlet.UploadServlet

该servlet是上传入口,spring中需要扫描、加载该servlet。该servlet映射地址是/common/upload

该上传serlet支持下列参数: 1. file 必选,上传的文件控件名称 2. overwrite 可选,如果文件重名,是否覆盖文件,默认为false 3. rename 可选,默认为true,表示上传后文件名以时间戳重命名;false值表示上传后文件名不变 4. folder 可选,放置在指定目录下,如果目录不存在,则指定的自动创建,默认为当前日期(yyyyMM)目录 5. manager 可选,IFileManager处理器java类名,包含包名、类名,通过该参数指定使用的IFileManager处理器,默认使用项目配置的IFileManager处理器

Java类:team.bangbang.common.file.IFileManager

此接口定义了文件上传的方法,具体的实现类有: 1. 上传到服务器本地 team.bangbang.common.file.LocalFileManager 2. 上传到阿里云OSS team.bangbang.common.file.AliyunOssManager 3. 上传到七牛云 team.bangbang.common.file.QiniuOssManager

文件上传使用哪个具体的实现类,取决于项目中的配置。

一、配置说明

  1. 上传到服务器本地 默认使用team.bangbang.common.file.LocalFileManager
spring:
  servlet:
    multipart:
      # 上传的文件最大Size,支持MB、KB单位
      max-file-size: 10MB
# 文件上传
file:
  attachment:
    # 上传处理器
    # 默认上传到本地
    manager: "team.bangbang.common.file.LocalFileManager"
    # 上传到本地的设置
    # 上传到本地的文件目录
    directory: "D:/home"
  1. 上传到阿里云OSS
spring:
  servlet:
    multipart:
      # 上传的文件最大Size,支持MB、KB单位
      max-file-size: 10MB
# 文件上传
file:
  attachment:
    # 上传处理器
    # 上传到阿里云OSS
    manager: "team.bangbang.common.file.AliyunOssManager"
      aliyun:
        # 上传返回地址的前缀,以半角字符“/”结尾
        root: "http://static.icode.js.cn/"
        oss:
          endpoint:
          accessKeyId:
          accessKeySecret:
          bucketName:
  1. 上传到七牛云
spring:
  servlet:
    multipart:
      # 上传的文件最大Size,支持MB、KB单位
      max-file-size: 10MB
# 文件上传
file:
  attachment:
    # 上传处理器
    # 上传到七牛云OSS
    manager: "team.bangbang.common.file.QiniuOssManager"
      qiniu:
        # 上传返回地址的前缀,以半角字符“/”结尾
        root: "http://static.icode.js.cn/"
        accessKey: "sfi8Igl2SO4Sw8jSyGLy888dp3NKukf0Ju3"
        secretKey: "KWd_OVl9ZRGcWMia33vEfS14J-yFW7n7DAJN0d2"
        bucket: "static"