From 247cb86585a1d1894596ed18a6c93efecb992946 Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期四, 14 十一月 2024 10:34:27 +0800 Subject: [PATCH] 班级成绩图表分析 --- src/main/java/com/ycl/jxkg/controller/admin/UploadController.java | 101 +++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 82 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/controller/admin/UploadController.java b/src/main/java/com/ycl/jxkg/controller/admin/UploadController.java index f20305d..5482a5a 100644 --- a/src/main/java/com/ycl/jxkg/controller/admin/UploadController.java +++ b/src/main/java/com/ycl/jxkg/controller/admin/UploadController.java @@ -3,23 +3,32 @@ import com.ycl.jxkg.base.BaseApiController; import com.ycl.jxkg.base.Result; +import com.ycl.jxkg.config.RuoYiConfig; import com.ycl.jxkg.config.property.SystemConfig; +import com.ycl.jxkg.domain.vo.admin.file.UeditorConfigVO; +import com.ycl.jxkg.domain.vo.admin.file.UploadResultVO; import com.ycl.jxkg.service.FileUpload; import com.ycl.jxkg.service.UserService; -import com.ycl.jxkg.vo.admin.file.UeditorConfigVO; -import com.ycl.jxkg.vo.admin.file.UploadResultVO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; +import java.util.HashMap; +import java.util.UUID; @RequestMapping("/api/admin/upload") @@ -32,12 +41,16 @@ private static final String IMAGE_UPLOAD = "imgUpload"; private static final String IMAGE_UPLOAD_FILE = "upFile"; private final UserService userService; + private final RuoYiConfig ruoYiConfig; + + @Autowired - public UploadController(FileUpload fileUpload, SystemConfig systemConfig, UserService userService) { + public UploadController(FileUpload fileUpload, SystemConfig systemConfig, UserService userService, RuoYiConfig ruoYiConfig) { this.fileUpload = fileUpload; this.systemConfig = systemConfig; this.userService = userService; + this.ruoYiConfig = ruoYiConfig; } @ResponseBody @@ -45,26 +58,45 @@ public Object upload(HttpServletRequest request, HttpServletResponse response) { String action = request.getParameter("action"); if (action.equals(IMAGE_UPLOAD)) { + MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request; + MultipartFile file = multipartHttpServletRequest.getFile(IMAGE_UPLOAD_FILE); + // 妫�鏌ユ枃浠舵槸鍚︿负绌� + if (file.isEmpty()) { + return Result.fail(500, "涓婁紶鐨勬枃浠朵负绌�"); + } try { - MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request; - MultipartFile multipartFile = multipartHttpServletRequest.getFile(IMAGE_UPLOAD_FILE); - long attachSize = multipartFile.getSize(); - String imgName = multipartFile.getOriginalFilename(); - String filePath; - try (InputStream inputStream = multipartFile.getInputStream()) { - filePath = fileUpload.uploadFile(inputStream, attachSize, imgName); + // 鑾峰彇鏂囦欢鍚� + String originalFileName = StringUtils.cleanPath(file.getOriginalFilename()); + String randomName = UUID.randomUUID().toString().replace("-", "") + originalFileName.substring(originalFileName.lastIndexOf(".")); + // 鎸囧畾鏂囦欢瀛樺偍璺緞 + String uploadDir = ruoYiConfig.getUrl(); // 淇敼涓烘偍甯屾湜瀛樺偍鐨勭洰褰� + // 濡傛灉鐩綍涓嶅瓨鍦紝鍒欏垱寤虹洰褰� + File dir = new File(uploadDir); + if (!dir.exists()) { + dir.mkdirs(); } - String imageType = imgName.substring(imgName.lastIndexOf(".")); + // 鏋勫缓鐩爣鏂囦欢鐨勮矾寰� + String filePath = uploadDir + "/" + randomName; + // 灏嗘枃浠朵繚瀛樺埌鐩爣浣嶇疆 + file.transferTo(new File(filePath)); + // 杩斿洖鎴愬姛鍝嶅簲 + HashMap hashMap = new HashMap(2); + hashMap.put("name", originalFileName); + hashMap.put("url", randomName); + + String imageType = randomName.substring(randomName.lastIndexOf(".")); UploadResultVO uploadResultVO = new UploadResultVO(); - uploadResultVO.setOriginal(imgName); - uploadResultVO.setName(imgName); - uploadResultVO.setUrl(filePath); - uploadResultVO.setSize(multipartFile.getSize()); + uploadResultVO.setOriginal(randomName); + uploadResultVO.setName(randomName); + uploadResultVO.setUrl("/api/files/" + randomName); + uploadResultVO.setSize(10L); uploadResultVO.setType(imageType); uploadResultVO.setState("SUCCESS"); return uploadResultVO; } catch (IOException e) { - logger.error(e.getMessage(), e); + e.printStackTrace(); + // 杩斿洖澶辫触鍝嶅簲 + return Result.fail(500, "鏂囦欢涓婁紶澶辫触"); } } else { UeditorConfigVO ueditorConfigVO = new UeditorConfigVO(); @@ -79,7 +111,6 @@ ueditorConfigVO.setImagePathFormat(""); return ueditorConfigVO; } - return null; } @@ -99,5 +130,37 @@ } } - + @PostMapping("/img") + public Result questionUploadAndReadExcel(MultipartFile file) { + // 妫�鏌ユ枃浠舵槸鍚︿负绌� + if (file == null || file.isEmpty()) { + return Result.fail(500, "涓婁紶鐨勬枃浠朵负绌�"); + } + String randomName = null; + HashMap hashMap = new HashMap(2); + try { + // 鑾峰彇鏂囦欢鍚� + String originalFileName = StringUtils.cleanPath(file.getOriginalFilename()); + randomName = UUID.randomUUID().toString().replace("-", "") + originalFileName.substring(originalFileName.lastIndexOf(".")); + // 鎸囧畾鏂囦欢瀛樺偍璺緞 + String uploadDir = ruoYiConfig.getUrl(); // 淇敼涓烘偍甯屾湜瀛樺偍鐨勭洰褰� + // 濡傛灉鐩綍涓嶅瓨鍦紝鍒欏垱寤虹洰褰� + File dir = new File(uploadDir); + if (!dir.exists()) { + dir.mkdirs(); + } + // 鏋勫缓鐩爣鏂囦欢鐨勮矾寰� + String filePath = uploadDir + "/" + randomName; + // 灏嗘枃浠朵繚瀛樺埌鐩爣浣嶇疆 + file.transferTo(new File(filePath)); + hashMap.put("name", originalFileName); + hashMap.put("url", randomName); + } catch (IOException e) { + e.printStackTrace(); + // 杩斿洖澶辫触鍝嶅簲 + return Result.fail(500, "鏂囦欢涓婁紶澶辫触"); + } + userService.changePicture(getCurrentUser(), randomName); + return Result.ok(hashMap); + } } -- Gitblit v1.8.0