From 1da190e7f267bcd3501884f3aeaac7476850fec7 Mon Sep 17 00:00:00 2001 From: EricsHu <hrr145632> Date: 星期日, 26 十一月 2023 17:53:03 +0800 Subject: [PATCH] 优化菜单查询 --- src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java | 106 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 99 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java b/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java index 861f990..6a33973 100644 --- a/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java +++ b/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java @@ -6,11 +6,18 @@ import cn.hutool.core.util.StrUtil; //import cn.hutool.core.io.FileUtil; +import com.aliyun.oss.OSSException; import com.obs.services.exception.ObsException; import com.obs.services.model.PutObjectResult; +import com.qxueyou.scc.base.model.CacheConstants; import com.qxueyou.scc.base.model.FileMeta; import com.qxueyou.scc.base.model.Result; +import com.qxueyou.scc.base.util.ClientUtils; +import com.qxueyou.scc.base.util.UUIDUtils; import com.qxueyou.scc.teach.res.service.HweiYunOBSService; +import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -23,6 +30,8 @@ import java.io.InputStream; import java.net.URLEncoder; import java.util.List; +import java.util.Locale; +import java.util.Map; /** * @ClassName: ObsController @@ -32,24 +41,107 @@ * @Version: 1.0 */ @RestController +@CrossOrigin @RequestMapping("/file")// @RequestMapping("/file") public class HweiYunOBSController { + private final Logger log = LogManager.getLogger("FileController"); @Resource private HweiYunOBSService hweiYunOBSService; @RequestMapping(value = "upload", method = RequestMethod.POST) - public Result save(@RequestParam(value = "file", required = false) MultipartFile file) { + public List<FileMeta> save(@RequestParam(value = "file", required = false) MultipartFile file) throws IOException { if (ObjectUtils.isEmpty(file) || file.getSize() <= 0) { - return new Result(false,"鏂囦欢涓虹┖"); + return null; } -// if (FileUtil.isEmpty(file)) { -// return new Result(false,"鏂囦欢涓虹┖"); -// } - final List<FileMeta> test = hweiYunOBSService.fileUpload(file, file.getOriginalFilename()); + String originalFilename = file.getOriginalFilename(); + String substring = originalFilename.substring(originalFilename.indexOf(".")+1); + + StringBuffer path=new StringBuffer(); + //璇嗗埆鏂囦欢鍚庣紑鏍煎紡锛岃幏鍙栧搴旂殑鏂囦欢瀛樺偍璺緞 + String pathFile = CacheConstants.fileFormatMap.get(substring.toUpperCase(Locale.ROOT)); + if (StringUtils.isEmpty(pathFile)) {//濡傛灉涓虹┖鍒欎笂浼犲埌榛樿瀛樺偍鏂囦欢澶� + path.append(CacheConstants.GUANGXI_ACQUIESCE); + }else{ + path.append(pathFile); + } + String uuid = UUIDUtils.UUID(); + //灏嗘枃浠堕噸鏂板懡鍚嶏紝闃叉鍑虹幇閲嶅悕瑕嗙洊 + String newFilename=uuid.concat(file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."))); + final List<FileMeta> test = hweiYunOBSService.fileUpload(file,path.append(newFilename).toString()); // return ResponseVO.ok("鎵ц鎴愬姛",test); - return new Result(true,"success",test); + return test; + } + + /** + * 鏂囦欢涓婁紶鎺ュ彛:涓哄鎴风鎻愪緵澶氱嚎绋嬪垎鐗囦笂浼犳帴鍙� + * 杩斿洖鐘舵�佸��:200浠h〃鎴愬姛锛�500浠h〃涓婁紶澶辫触锛�205浠h〃闇�閲嶆柊灏濊瘯 + * + * @param identifier 鍞竴id锛岄渶瀹㈡埛绔繚璇佸敮涓�鎬э紝鐩稿悓鏂囦欢淇濊瘉鍞竴鍗冲彲锛岄潪MD5 + * @return + * @TODO : 鐩墠缂哄皯瀵� 鍚勬ā鍧楁枃浠朵釜鏁般�佹枃浠舵牸寮忋�佹枃浠跺ぇ灏忕殑涓婁紶鎺у埗,缁熶竴澧炲姞鍦╟onfigFileModule琛ㄩ噷闈㈠嵆鍙疄鐜� 1 鍥剧墖锛� 2 鏂囨。 3 瑙嗛 4 闊抽 + */ + @RequestMapping(value = "/uploadChunk", headers = "content-type=multipart/*", method = RequestMethod.POST) + public @ResponseBody FileMeta doUploadPublic(MultipartFile file, HttpServletResponse response, + Integer chunkNumber, Integer totalChunks, long chunkSize, long totalSize, String identifier, String filename, Integer currentChunkSize) { + + FileMeta fileMeta = new FileMeta(); + try { + + Result uploadResult = null; + + uploadResult = hweiYunOBSService.uploadChunk(file.getInputStream(), identifier.concat(ClientUtils.getUserId()), chunkNumber, currentChunkSize, totalChunks, filename); + + + fileMeta.setFileId(uploadResult.getDataT("fileId")); + fileMeta.setPath(uploadResult.getDataT("path")); + + if (!uploadResult.isSuccess()) { + response.setStatus(205); + } + + } catch (OSSException e) { + response.setStatus(500); + log.error(e, e); + } catch (Exception e) { + log.error("涓婁紶妯″潡瑙f瀽鍑洪敊锛�" + e.getMessage(), e); + response.setStatus(500); + } + + fileMeta.setFileName(filename); + fileMeta.setFileSize(String.valueOf(totalSize)); + fileMeta.setFileType(null); + + return fileMeta; + } + + /** + * 鍒濆鍖栧垎鐗囦笂浼犱换鍔� + * + * @return + */ + @RequestMapping(value = "/uploadChunk/init", method = RequestMethod.POST) + public @ResponseBody + Result initUploadChunk(String identifier, String fileName,String md5) { + + //濡傛灉MD5鐨勫搴旀枃浠跺瓨鍦ㄥ垯鐩存帴杩斿洖 +// Result result = fileService.checkMd5(md5,fileName); + String substring = fileName.substring(fileName.indexOf(".")+1); + + StringBuffer path=new StringBuffer(); + //璇嗗埆鏂囦欢鍚庣紑鏍煎紡锛岃幏鍙栧搴旂殑鏂囦欢瀛樺偍璺緞 + String pathFile = CacheConstants.fileFormatMap.get(substring.toUpperCase(Locale.ROOT)); + if (StringUtils.isEmpty(pathFile)) {//濡傛灉涓虹┖鍒欎笂浼犲埌榛樿瀛樺偍鏂囦欢澶� + path.append(CacheConstants.GUANGXI_ACQUIESCE); + }else{ + path.append(pathFile); + } + String uuid = UUIDUtils.UUID(); + //灏嗘枃浠堕噸鏂板懡鍚嶏紝闃叉鍑虹幇閲嶅悕瑕嗙洊 + String newFilename=uuid.concat(String.valueOf(fileName.lastIndexOf("."))); + return hweiYunOBSService.initUploadChunk(identifier.concat(ClientUtils.getUserId()),path.append(newFilename).toString(),md5); + } @RequestMapping(value = "delete", method = RequestMethod.POST) -- Gitblit v1.8.0