From 1d0a9c02c9ade13e648e542e2d33e7ffdff4ecde Mon Sep 17 00:00:00 2001 From: sh Date: Fri, 31 Oct 2025 11:52:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=95=8F=E6=84=9F=E8=AF=8D?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cms/SensitiveWordDataController.java | 63 ++++++++++++++++++- 1 file changed, 61 insertions(+), 2 deletions(-) diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/SensitiveWordDataController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/SensitiveWordDataController.java index 39b49fa..5b93d48 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/SensitiveWordDataController.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/SensitiveWordDataController.java @@ -3,6 +3,7 @@ package com.ruoyi.cms.controller.cms; import com.ruoyi.cms.domain.SensitiveWordData; import com.ruoyi.cms.service.SensitiveWordDataService; import com.ruoyi.cms.util.EasyExcelUtils; +import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; @@ -11,11 +12,12 @@ import com.ruoyi.common.enums.BusinessType; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import java.io.InputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; import java.util.List; @@ -29,6 +31,7 @@ import java.util.List; @RestController @RequestMapping("/cms/sensitiveworddata") @Api(tags = "后台:敏感词库") +@Anonymous public class SensitiveWordDataController extends BaseController { @Autowired private SensitiveWordDataService sensitiveWordDataService; @@ -95,6 +98,20 @@ public class SensitiveWordDataController extends BaseController { @PostMapping("/exoprt") public AjaxResult uploadFile(@RequestParam("file") MultipartFile file) throws Exception { + // 参数校验 + if (file.isEmpty()) { + return AjaxResult.error("上传文件不能为空"); + } + String fileName = file.getOriginalFilename(); + //类型验证 + if (fileName == null || !fileName.endsWith(".xlsx") && !fileName.endsWith(".xls")) { + return AjaxResult.error("请上传Excel格式的文件"); + } + //名称验证 + if (fileName == null || !"mgc.xlsx".equals(fileName)) { + return AjaxResult.error("请上传正确的模板文件:mgc.xlsx"); + } + try { InputStream inputStream = file.getInputStream(); @@ -109,4 +126,46 @@ public class SensitiveWordDataController extends BaseController { } return AjaxResult.success(); } + + @PostMapping("/downloadModel") + public void downloadModel(HttpServletRequest request, HttpServletResponse response)throws Exception{ + String name = "mgc.xlsx"; + String pathFile="/data/downloadmodel/"+name; + File url = new File(pathFile); + + String resMsg = ""; + try { + request.setCharacterEncoding("utf-8"); + } catch (UnsupportedEncodingException e1) { + e1.printStackTrace(); + } + try { + name = new String(name.getBytes("gb2312"), "ISO8859-1"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + response.reset(); + + response.setContentType("application/octet-stream"); + response.setHeader("Content-Disposition", "attachment; filename="+ name); + response.setHeader("Pragma", "public"); + response.setHeader("Cache-Control", "max-age=0"); + InputStream in = null; + try { + in = new FileInputStream(url); + } catch (FileNotFoundException e1) { + resMsg = "文件未找到"; + e1.printStackTrace(); + response.getWriter().write(resMsg + ":" + name); + } + OutputStream ou = response.getOutputStream(); + byte[] buffer = new byte[1024]; + int i = -1; + while ((i = in.read(buffer)) != -1) { + ou.write(buffer, 0, i); + } + ou.flush(); + ou.close(); + in.close(); + } }