java springBoot 图片、视频上传硬盘

application.properties

设置上传文件的路径 E:/HoliSAS/PMS-Run/

#端口
server.port=8086
#上传文件目录
pmsQuestionLib.upload=E:/HoliSAS/PMS-Run/
#问题描述图片路径
pmsQuestionLib.quesDesc.image=quesDesc/image/
#问题描述视频路径
pmsQuestionLib.quesDesc.video=quesDesc/video/

图片上传 Contrller 层

/**
 * 问题库 前端控制器
 *
 * @author xiezhijan
 * @since 2020-03-19
 */
@CrossOrigin
@Api(tags = "问题库api")
@RestController
@RequestMapping("/pmsQuestionLib")
public class PmsQuestionLibController {
// 注解注入
//上传路径
 @Value("${pmsQuestionLib.upload}")
  private String upload;
// 图片路径
  @Value("${pmsQuestionLib.quesDesc.image}")
  private String quesDescPic;
// 视频路径
  @Value("${pmsQuestionLib.quesDesc.video}")
  private String quesDescVideo;


@ApiOperation("问题描述上传图片")
  @PostMapping("/descPicUpload")
  public ApiResultData descPicUpload(
  // 传入文件
      @RequestParam(name = "file", required = true) MultipartFile file,
      HttpServletRequest request) {
      // 新建字符串
    StringBuilder stringBuilder = new StringBuilder();
    // 拼接字符串
    stringBuilder
    // 返回当前链接使用的协议;(http)
        .append(request.getScheme())
        .append("://")
        // 获取本地Ip
        .append(LocalIpUtil.getIpAddress())
        .append(":")
        // 服务器端口
        .append(serverPort)
        // 得到路径
        .append(request.getContextPath());
        // 得到当前时间
    String nowTimeEnYMd = DateUtil.getNowTime_EN_yMd();
    // 当前时间戳
    Long millis = DateUtil.getLocalDateTimeToMillis(LocalDateTime.now());
    // 如果文件是空
    if (file.isEmpty()) {
      return new ApiResultData(1, "上传失败,请选择文件", "成功");
    }
    // 重新赋予文件名
    String fileName = millis + "/" + file.getOriginalFilename();
    // 图片路径
    String path = quesDescPic + nowTimeEnYMd + "/" + fileName;
    // 文件的最终路径
    File filePath = new File(upload + path);
   //  如果不存在
    if (!filePath.exists()) {
    // 创建
      filePath.mkdirs();
    }
    try {
    // 转移到
      file.transferTo(filePath);
      // 字符串拼接 返给前端路径
      stringBuilder.append("/").append(path);
      return new ApiResultData(1, stringBuilder.toString(), "成功");
    } catch (IOException e) {
      e.printStackTrace();
    }
    return new ApiResultData(1, "上传失败", "成功");
  }
}

视频上传Contrller

// application.properties通用
@ApiOperation("问题描述上传视频")
  @PostMapping("/descVideoUpload")
  public ApiResultData descVideoUpload(
      @RequestParam(name = "file", required = true) MultipartFile file,
      HttpServletRequest request) {
  // 新建字符串
    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder
  返回当前链接使用的协议;(http)
        .append(request.getScheme())
        .append("://")
          // 获取本地Ip
        .append(LocalIpUtil.getIpAddress())
        .append(":")
        // 得到端口
        .append(serverPort)
        // 得到路径
        .append(request.getContextPath());
        // 当前时间
    String nowTimeEnYMd = DateUtil.getNowTime_EN_yMd();
    // 当前时间戳
    Long millis = DateUtil.getLocalDateTimeToMillis(LocalDateTime.now());
    // 是否位空
    if (file.isEmpty()) {
      return new ApiResultData(1, "上传失败,请选择文件", "成功");
    }
    // 文件名
    String fileName = millis + "/" + file.getOriginalFilename();
    // 视频路径
    String path = quesDescVideo + nowTimeEnYMd + "/" + fileName;
    // 最终路径
    File filePath = new File(upload + path);
    // 是否有文件夹
    if (!filePath.exists()) {
    // 创建文件夹
      filePath.mkdirs();
    }
    try {
        // 转移到
      file.transferTo(filePath);
            // 字符串拼接
      stringBuilder.append("/").append(path);
      return new ApiResultData(1, stringBuilder.toString(), "成功");
    } catch (IOException e) {
      e.printStackTrace();
    }
    return new ApiResultData(1, "上传失败", "成功");
  }

图片视频的删除 Contrller

实体类和service

@ApiOperation("删除")
  @GetMapping("/delete")
  // 传入需要删除的视频id
  public ApiResultData delete(
      @RequestParam(name = "id", required = true) Integer id, HttpServletRequest request) {
      //  iPmsQuestionLibService 继承 Iservice (实体类需要序列化)     封装删除
    PmsQuestionLib pmsQuestionLib = iPmsQuestionLibService.getById(id);
    // 问题描述图片路径
    delFile(request, pmsQuestionLib.getQuesDescPic());
    // 问题描述视频路径
    delFile(request, pmsQuestionLib.getQuesDescVideo());
    // 整改落实情况-图片路径
    delFile(request, pmsQuestionLib.getDealDescPic());
    // 整改落实情况-视频路径
    delFile(request, pmsQuestionLib.getDealDescVideo());
    boolean flag = iPmsQuestionLibService.removeById(id);
    return new ApiResultData(1, flag, "成功");
  }
// 封装 deFille
  private void delFile(HttpServletRequest request, String paths) {
    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder
        .append(request.getScheme())
        .append("://")
        .append(LocalIpUtil.getIpAddress())
        .append(":")
        .append(serverPort)
        .append(request.getContextPath())
        .append("/");
    ;
    String replace;

    if (StringUtils.isNotBlank(paths)) {
      List<String> strings = JSON.parseArray(paths, String.class);
      if (CollectionUtils.isNotEmpty(strings)) {
        for (String str : strings) {
          replace = StringUtils.replace(str, stringBuilder.toString(), upload);
          replace = replace.substring(0, replace.lastIndexOf("/"));
          File file = new File(replace);
          // 删除指定文件,从不引发异常。
          FileUtils.deleteQuietly(file);
          replace = replace.substring(0, replace.lastIndexOf("/"));
          File fileParent = new File(replace);
          Optional.ofNullable(fileParent.list())
              .ifPresent(
                  i -> {
                    if (CollectionUtils.isEmpty(Arrays.asList(i))) {
                      FileUtils.deleteQuietly(fileParent);
                    }
                  });
        }
      }
    }
  }

修改

  @ApiOperation("修改")
  @PostMapping("/update")
  public ApiResultData update(
      @RequestBody PmsQuestionLibAddPo pmsQuestionLibAddPo, HttpServletRequest request) {
    if (CollectionUtils.isNotEmpty(pmsQuestionLibAddPo.getDelQuesDescPics())) {
      delFiles(request, pmsQuestionLibAddPo.getDelQuesDescPics());
    }
    if (CollectionUtils.isNotEmpty(pmsQuestionLibAddPo.getDelQuesDescVideos())) {
      delFiles(request, pmsQuestionLibAddPo.getDelQuesDescVideos());
    }
    if (CollectionUtils.isNotEmpty(pmsQuestionLibAddPo.getDelDealDescPics())) {
      delFiles(request, pmsQuestionLibAddPo.getDelDealDescPics());
    }
    if (CollectionUtils.isNotEmpty(pmsQuestionLibAddPo.getDelDealDescVideos())) {
      delFiles(request, pmsQuestionLibAddPo.getDelDealDescVideos());
    }
    if (CollectionUtils.isEmpty(pmsQuestionLibAddPo.getQuesDescPics())) {
      pmsQuestionLibAddPo.setQuesDescPic(null);
    } else {
      pmsQuestionLibAddPo.setQuesDescPic(JSON.toJSONString(pmsQuestionLibAddPo.getQuesDescPics()));
    }
    if (CollectionUtils.isEmpty(pmsQuestionLibAddPo.getQuesDescVideos())) {
      pmsQuestionLibAddPo.setQuesDescVideo(null);
    } else {
      pmsQuestionLibAddPo.setQuesDescVideo(
          JSON.toJSONString(pmsQuestionLibAddPo.getQuesDescVideos()));
    }
    if (CollectionUtils.isEmpty(pmsQuestionLibAddPo.getDealDescPics())) {
      pmsQuestionLibAddPo.setDealDescPic(null);
    } else {
      pmsQuestionLibAddPo.setDealDescPic(JSON.toJSONString(pmsQuestionLibAddPo.getDealDescPics()));
    }
    if (CollectionUtils.isEmpty(pmsQuestionLibAddPo.getDealDescVideos())) {
      pmsQuestionLibAddPo.setDealDescVideo(null);
    } else {
      pmsQuestionLibAddPo.setDealDescVideo(
          JSON.toJSONString(pmsQuestionLibAddPo.getDealDescVideos()));
    }
   // 封装好进库
    boolean flag = iPmsQuestionLibService.updateById(pmsQuestionLibAddPo);
    return new ApiResultData(1, flag, "成功");
  }

图片视频保存 Contrller

@ApiOperation("保存")
  @PostMapping("/save")
  public ApiResultData save(
      @RequestBody PmsQuestionLibAddPo pmsQuestionLibAddPo, HttpServletRequest request) {
    if (CollectionUtils.isNotEmpty(pmsQuestionLibAddPo.getDelQuesDescPics())) {
      delFiles(request, pmsQuestionLibAddPo.getDelQuesDescPics());
    }
    if (CollectionUtils.isNotEmpty(pmsQuestionLibAddPo.getDelQuesDescVideos())) {
      delFiles(request, pmsQuestionLibAddPo.getDelQuesDescVideos());
    }
    if (CollectionUtils.isNotEmpty(pmsQuestionLibAddPo.getDelDealDescPics())) {
      delFiles(request, pmsQuestionLibAddPo.getDelDealDescPics());
    }
    if (CollectionUtils.isNotEmpty(pmsQuestionLibAddPo.getDelDealDescVideos())) {
      delFiles(request, pmsQuestionLibAddPo.getDelDealDescVideos());
    }
    if (CollectionUtils.isEmpty(pmsQuestionLibAddPo.getQuesDescPics())) {
      pmsQuestionLibAddPo.setQuesDescPic(null);
    } else {
      pmsQuestionLibAddPo.setQuesDescPic(JSON.toJSONString(pmsQuestionLibAddPo.getQuesDescPics()));
    }
    if (CollectionUtils.isEmpty(pmsQuestionLibAddPo.getQuesDescVideos())) {
      pmsQuestionLibAddPo.setQuesDescVideo(null);
    } else {
      pmsQuestionLibAddPo.setQuesDescVideo(
          JSON.toJSONString(pmsQuestionLibAddPo.getQuesDescVideos()));
    }
    if (CollectionUtils.isEmpty(pmsQuestionLibAddPo.getDealDescPics())) {
      pmsQuestionLibAddPo.setDealDescPic(null);
    } else {
      pmsQuestionLibAddPo.setDealDescPic(JSON.toJSONString(pmsQuestionLibAddPo.getDealDescPics()));
    }
    if (CollectionUtils.isEmpty(pmsQuestionLibAddPo.getDealDescVideos())) {
      pmsQuestionLibAddPo.setDealDescVideo(null);
    } else {
      pmsQuestionLibAddPo.setDealDescVideo(
          JSON.toJSONString(pmsQuestionLibAddPo.getDealDescVideos()));
    }
    // 封装好进库
    boolean flag = iPmsQuestionLibService.save(pmsQuestionLibAddPo);
    return new ApiResultData(1, flag, "成功");
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值