From dd9340090b9d960e486201e92d6a7a991d7cdec6 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期五, 23 七月 2021 19:14:37 +0800 Subject: [PATCH] add OSS模块 增加预览图片开关 --- ruoyi-oss/src/main/java/com/ruoyi/system/controller/SysOssController.java | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+), 0 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..3791030 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,6 +10,7 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.exception.CustomException; +import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.system.bo.SysOssQueryBo; import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.service.ISysOssService; @@ -18,12 +21,17 @@ 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; @@ -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)); + 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