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 | 141 ++++++++++++++++++++++++++++++++++------------- 1 files changed, 102 insertions(+), 39 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 ef23ce7..5482a5a 100644 --- a/src/main/java/com/ycl/jxkg/controller/admin/UploadController.java +++ b/src/main/java/com/ycl/jxkg/controller/admin/UploadController.java @@ -2,24 +2,33 @@ import com.ycl.jxkg.base.BaseApiController; -import com.ycl.jxkg.base.RestResponse; -import com.ycl.jxkg.configuration.property.SystemConfig; +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.viewmodel.admin.file.UeditorConfigVM; -import com.ycl.jxkg.viewmodel.admin.file.UploadResultVM; 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,47 +58,65 @@ 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(".")); - UploadResultVM uploadResultVM = new UploadResultVM(); - uploadResultVM.setOriginal(imgName); - uploadResultVM.setName(imgName); - uploadResultVM.setUrl(filePath); - uploadResultVM.setSize(multipartFile.getSize()); - uploadResultVM.setType(imageType); - uploadResultVM.setState("SUCCESS"); - return uploadResultVM; + // 鏋勫缓鐩爣鏂囦欢鐨勮矾寰� + 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(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 { - UeditorConfigVM ueditorConfigVM = new UeditorConfigVM(); - ueditorConfigVM.setImageActionName(IMAGE_UPLOAD); - ueditorConfigVM.setImageFieldName(IMAGE_UPLOAD_FILE); - ueditorConfigVM.setImageMaxSize(2048000L); - ueditorConfigVM.setImageAllowFiles(Arrays.asList(".png", ".jpg", ".jpeg", ".gif", ".bmp")); - ueditorConfigVM.setImageCompressEnable(true); - ueditorConfigVM.setImageCompressBorder(1600); - ueditorConfigVM.setImageInsertAlign("none"); - ueditorConfigVM.setImageUrlPrefix(""); - ueditorConfigVM.setImagePathFormat(""); - return ueditorConfigVM; + UeditorConfigVO ueditorConfigVO = new UeditorConfigVO(); + ueditorConfigVO.setImageActionName(IMAGE_UPLOAD); + ueditorConfigVO.setImageFieldName(IMAGE_UPLOAD_FILE); + ueditorConfigVO.setImageMaxSize(2048000L); + ueditorConfigVO.setImageAllowFiles(Arrays.asList(".png", ".jpg", ".jpeg", ".gif", ".bmp")); + ueditorConfigVO.setImageCompressEnable(true); + ueditorConfigVO.setImageCompressBorder(1600); + ueditorConfigVO.setImageInsertAlign("none"); + ueditorConfigVO.setImageUrlPrefix(""); + ueditorConfigVO.setImagePathFormat(""); + return ueditorConfigVO; } - return null; } @RequestMapping("/image") @ResponseBody - public RestResponse questionUploadAndReadExcel(HttpServletRequest request) { + public Result questionUploadAndReadExcel(HttpServletRequest request) { MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request; MultipartFile multipartFile = multipartHttpServletRequest.getFile("file"); long attachSize = multipartFile.getSize(); @@ -93,11 +124,43 @@ try (InputStream inputStream = multipartFile.getInputStream()) { String filePath = fileUpload.uploadFile(inputStream, attachSize, imgName); userService.changePicture(getCurrentUser(), filePath); - return RestResponse.ok(filePath); + return Result.ok(filePath); } catch (IOException e) { - return RestResponse.fail(2, e.getMessage()); + return Result.fail(2, e.getMessage()); } } - + @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