From 724f785c969715b2481326ba7605d712ceccf790 Mon Sep 17 00:00:00 2001 From: lxw <810412026@qq.com> Date: 星期三, 07 九月 2022 11:10:46 +0800 Subject: [PATCH] 软件下载 --- src/main/java/com/whyc/service/SoftwareService.java | 52 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 49 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/whyc/service/SoftwareService.java b/src/main/java/com/whyc/service/SoftwareService.java index 12488cb..a5c227c 100644 --- a/src/main/java/com/whyc/service/SoftwareService.java +++ b/src/main/java/com/whyc/service/SoftwareService.java @@ -2,9 +2,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; +import com.whyc.constant.UserOperation; +import com.whyc.dto.FileDirPath; import com.whyc.dto.Response; import com.whyc.mapper.SoftwareMapper; +import com.whyc.pojo.DocUser; +import com.whyc.pojo.ProductSoftware; import com.whyc.pojo.Software; +import com.whyc.util.ActionUtil; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; @@ -13,8 +18,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.io.IOException; -import java.io.InputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; import java.text.ParseException; import java.util.Date; import java.util.LinkedList; @@ -23,8 +30,11 @@ @Service public class SoftwareService { - @Autowired + @Autowired(required = false) private SoftwareMapper mapper; + + @Autowired + private DocLogService logService; public List<Software> excelParse(InputStream inputStream) throws IOException, InvalidFormatException, ParseException { List<Software> softwareList = new LinkedList<>(); @@ -95,4 +105,40 @@ List list=mapper.selectList(wrapper); return new Response().setII(1,list.size()>0,list,"杞欢淇℃伅杩斿洖"); } + + + //鏍规嵁杞欢鍚嶇О瀹炵幇杞欢涓嬭浇 + public void downLoadSoftware(HttpServletRequest req, HttpServletResponse resp, int id) { + String fileDirName = FileDirPath.getFileDirName(); + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("id",id); + wrapper.last("limit 1"); + Software software=mapper.selectOne(wrapper); + try { + // 杞爜闃叉涔辩爜 + //resp.addHeader("Content-Disposition", "attachment;filename=" + new String(softwareName.getBytes("UTF-8"), "ISO8859-1")); + resp.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode ( software.getFileName(), "utf-8")); + OutputStream out = resp.getOutputStream(); + FileInputStream in = new FileInputStream(fileDirName+File.separator+software.getFileUrl()); + int len=0; + byte[] buffer =new byte[1024]; + //7. 灏嗙紦鍐插尯涓殑鏁版嵁杈撳嚭 + while ((len=in.read(buffer))>0){ + out.write(buffer,0,len); + } + in.close(); + out.close(); + } catch (FileNotFoundException | UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + //璁板綍鏃ュ織 + DocUser docUser= ActionUtil.getUser(); + String operationDetail="鍏蜂綋杞欢鍚嶇О涓�:"+software.getFileName(); + String opreationMsg="鎵ц浜嗚蒋浠朵笅杞芥搷浣�"; + String terminalIp=req.getRemoteAddr(); + logService.recordOperationLog(docUser.getId(),docUser.getName(), UserOperation.TYPE_DOWNLOAD.getType(),new Date(),terminalIp,opreationMsg,operationDetail); + } + } -- Gitblit v1.9.1