From f8ab5663ef7220f8adc0fd8fcbd7d0cf84c6d77d Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期一, 02 八月 2021 12:15:14 +0800 Subject: [PATCH] update 日常字符串校验 统一重构到 StringUtils 便于维护扩展 --- ruoyi-oss/src/main/java/com/ruoyi/system/controller/SysOssController.java | 31 ++++++++++++++++++++++++++++--- 1 files changed, 28 insertions(+), 3 deletions(-) diff --git a/ruoyi-oss/src/main/java/com/ruoyi/system/controller/SysOssController.java b/ruoyi-oss/src/main/java/com/ruoyi/system/controller/SysOssController.java index 9d1e917..8a84c42 100644 --- a/ruoyi-oss/src/main/java/com/ruoyi/system/controller/SysOssController.java +++ b/ruoyi-oss/src/main/java/com/ruoyi/system/controller/SysOssController.java @@ -1,6 +1,8 @@ package com.ruoyi.system.controller; +import cn.hutool.core.convert.Convert; +import cn.hutool.http.HttpUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.core.controller.BaseController; @@ -8,22 +10,28 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.exception.CustomException; -import com.ruoyi.system.bo.SysOssQueryBo; +import com.ruoyi.common.utils.file.FileUtils; +import com.ruoyi.system.domain.bo.SysOssBo; import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.service.ISysOssService; -import com.ruoyi.system.vo.SysOssVo; +import com.ruoyi.system.domain.vo.SysOssVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.NotEmpty; +import java.io.IOException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -48,7 +56,7 @@ @ApiOperation("鏌ヨOSS浜戝瓨鍌ㄥ垪琛�") @PreAuthorize("@ss.hasPermi('system:oss:list')") @GetMapping("/list") - public TableDataInfo<SysOssVo> list(@Validated SysOssQueryBo bo) { + public TableDataInfo<SysOssVo> list(@Validated SysOssBo bo) { return iSysOssService.queryPageList(bo); } @@ -74,6 +82,23 @@ return AjaxResult.success(map); } + @ApiOperation("涓嬭浇OSS浜戝瓨鍌�") + @PreAuthorize("@ss.hasPermi('system:oss:download')") + @GetMapping("/download/{ossId}") + public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException { + SysOss sysOss = iSysOssService.getById(ossId); + if (sysOss == null) { + throw new CustomException("鏂囦欢鏁版嵁涓嶅瓨鍦�!"); + } + response.reset(); + response.addHeader("Access-Control-Allow-Origin", "*"); + response.addHeader("Access-Control-Expose-Headers", "Content-Disposition"); + FileUtils.setAttachmentResponseHeader(response, URLEncoder.encode(sysOss.getOriginalName(), StandardCharsets.UTF_8.toString())); + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8"); + long data = HttpUtil.download(sysOss.getUrl(), response.getOutputStream(), false); + response.setContentLength(Convert.toInt(data)); + } + /** * 鍒犻櫎OSS浜戝瓨鍌� */ -- Gitblit v1.9.3