|
@@ -0,0 +1,90 @@
|
|
|
+package com.ruoyi.web.controller.file;
|
|
|
+
|
|
|
+import com.ruoyi.common.core.domain.entity.MarketUploadFile;
|
|
|
+import com.ruoyi.system.service.MarketUploadFileService;
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import org.apache.commons.codec.digest.DigestUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.util.FileCopyUtils;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
+
|
|
|
+import java.io.File;
|
|
|
+import java.io.FileOutputStream;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
+@Api(tags = "上传文件")
|
|
|
+@RestController
|
|
|
+@RequestMapping("/market/upload")
|
|
|
+public class UploadFileController {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MarketUploadFileService marketUploadFileService;
|
|
|
+
|
|
|
+ @Value("${upload.path}")
|
|
|
+ private String uploadPath;
|
|
|
+
|
|
|
+ @PostMapping(value = "uploadFile")
|
|
|
+ public MarketUploadFile uploadFile(MultipartFile multipartFile,String type){
|
|
|
+ try {
|
|
|
+ //获取文件md5
|
|
|
+ String fileMD5 = DigestUtils.md5Hex(multipartFile.getBytes());
|
|
|
+ MarketUploadFile uploadFiles = marketUploadFileService.getById(fileMD5);
|
|
|
+ if (!Objects.isNull(uploadFiles)) {
|
|
|
+ return uploadFiles;
|
|
|
+ }
|
|
|
+ //上传文件
|
|
|
+ MarketUploadFile marketUploadFile = new MarketUploadFile(
|
|
|
+ fileMD5,
|
|
|
+ multipartFile.getOriginalFilename(),
|
|
|
+ multipartFile.getContentType(),
|
|
|
+ uploadPath);
|
|
|
+
|
|
|
+ // 目录上传组装
|
|
|
+ String datePath = getFileFolder(type, true, true, true);
|
|
|
+ String filename = marketUploadFile.getFileName();
|
|
|
+ String suffix = filename.substring(filename.lastIndexOf("."));
|
|
|
+ String objectName = fileMD5 + suffix;
|
|
|
+ String path = uploadPath + "upload/" + datePath;
|
|
|
+
|
|
|
+ File directory = new File(path);
|
|
|
+ if (!directory.exists()) {
|
|
|
+ directory.mkdirs();
|
|
|
+ }
|
|
|
+ File file = new File(path + objectName);
|
|
|
+ if (!file.exists()) {
|
|
|
+ file.createNewFile();
|
|
|
+ }
|
|
|
+ //自动创建文件夹与文件 path + objectName
|
|
|
+ FileCopyUtils.copy(multipartFile.getBytes(), new FileOutputStream(path + objectName));
|
|
|
+ return marketUploadFile;
|
|
|
+ }catch(Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private String getFileFolder(String type, boolean year, boolean month, boolean day) {
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ String dateString = dateFormat.format(new Date());
|
|
|
+ String[] split = dateString.split("-");
|
|
|
+ stringBuilder.append(type).append("/");
|
|
|
+ if (year) {
|
|
|
+ stringBuilder.append(split[0]).append("/");
|
|
|
+ }
|
|
|
+ if (month) {
|
|
|
+ stringBuilder.append(split[1]).append("/");
|
|
|
+ }
|
|
|
+ if (day) {
|
|
|
+ stringBuilder.append(split[2]).append("/");
|
|
|
+ }
|
|
|
+ return stringBuilder.toString();
|
|
|
+ }
|
|
|
+}
|