diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/FileMgrController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/FileMgrController.java new file mode 100644 index 0000000..1b47b43 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/FileMgrController.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.FileDTO; +import com.casic.missiles.modular.system.service.ILqFileService; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.IOException; + +/** + * 附件管理功能 + * + * @author lwh + */ +@RestController +@RequestMapping("/file") +public class FileMgrController extends BaseController { + + @Resource + private ILqFileService lqFileService; + + /** + * 文件上传路径 + */ + @RequestMapping("/uploadFile") + @ResponseBody + public Object uploadFile(@RequestParam("file") MultipartFile file) throws IOException { + String fileId = lqFileService.saveFile(file); + if (fileId != null) { + FileDTO fileDto = new FileDTO(); + fileDto.setFileId(fileId); + fileDto.setFileName(file.getOriginalFilename()); + return ResponseData.success(fileDto); + } + return ResponseData.error("文件为空"); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/FileMgrController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/FileMgrController.java new file mode 100644 index 0000000..1b47b43 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/FileMgrController.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.FileDTO; +import com.casic.missiles.modular.system.service.ILqFileService; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.IOException; + +/** + * 附件管理功能 + * + * @author lwh + */ +@RestController +@RequestMapping("/file") +public class FileMgrController extends BaseController { + + @Resource + private ILqFileService lqFileService; + + /** + * 文件上传路径 + */ + @RequestMapping("/uploadFile") + @ResponseBody + public Object uploadFile(@RequestParam("file") MultipartFile file) throws IOException { + String fileId = lqFileService.saveFile(file); + if (fileId != null) { + FileDTO fileDto = new FileDTO(); + fileDto.setFileId(fileId); + fileDto.setFileName(file.getOriginalFilename()); + return ResponseData.success(fileDto); + } + return ResponseData.error("文件为空"); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/FileDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/FileDTO.java new file mode 100644 index 0000000..11af2db --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/FileDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +/** + * 附件返回DTO + * + * @author lwh + */ +@Data +public class FileDTO { + private String id; + private String fileId; + private String fileName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/FileMgrController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/FileMgrController.java new file mode 100644 index 0000000..1b47b43 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/FileMgrController.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.FileDTO; +import com.casic.missiles.modular.system.service.ILqFileService; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.IOException; + +/** + * 附件管理功能 + * + * @author lwh + */ +@RestController +@RequestMapping("/file") +public class FileMgrController extends BaseController { + + @Resource + private ILqFileService lqFileService; + + /** + * 文件上传路径 + */ + @RequestMapping("/uploadFile") + @ResponseBody + public Object uploadFile(@RequestParam("file") MultipartFile file) throws IOException { + String fileId = lqFileService.saveFile(file); + if (fileId != null) { + FileDTO fileDto = new FileDTO(); + fileDto.setFileId(fileId); + fileDto.setFileName(file.getOriginalFilename()); + return ResponseData.success(fileDto); + } + return ResponseData.error("文件为空"); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/FileDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/FileDTO.java new file mode 100644 index 0000000..11af2db --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/FileDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +/** + * 附件返回DTO + * + * @author lwh + */ +@Data +public class FileDTO { + private String id; + private String fileId; + private String fileName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ILqFileService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ILqFileService.java new file mode 100644 index 0000000..fab51b9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ILqFileService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.dto.FileDTO; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.List; + +/** + * 附件保存接口 + */ +public interface ILqFileService { + /** + * 附件保存接口 + * @param file 附件 + * @return 附件存储路径 + * @throws IOException + */ + public String saveFile(MultipartFile file) throws IOException; + + /** + * 附件检索列表 + * @param type 附件类型 + * @return 附件集合 + */ + public List list(String type); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/FileMgrController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/FileMgrController.java new file mode 100644 index 0000000..1b47b43 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/FileMgrController.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.FileDTO; +import com.casic.missiles.modular.system.service.ILqFileService; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.IOException; + +/** + * 附件管理功能 + * + * @author lwh + */ +@RestController +@RequestMapping("/file") +public class FileMgrController extends BaseController { + + @Resource + private ILqFileService lqFileService; + + /** + * 文件上传路径 + */ + @RequestMapping("/uploadFile") + @ResponseBody + public Object uploadFile(@RequestParam("file") MultipartFile file) throws IOException { + String fileId = lqFileService.saveFile(file); + if (fileId != null) { + FileDTO fileDto = new FileDTO(); + fileDto.setFileId(fileId); + fileDto.setFileName(file.getOriginalFilename()); + return ResponseData.success(fileDto); + } + return ResponseData.error("文件为空"); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/FileDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/FileDTO.java new file mode 100644 index 0000000..11af2db --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/FileDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +/** + * 附件返回DTO + * + * @author lwh + */ +@Data +public class FileDTO { + private String id; + private String fileId; + private String fileName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ILqFileService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ILqFileService.java new file mode 100644 index 0000000..fab51b9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ILqFileService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.dto.FileDTO; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.List; + +/** + * 附件保存接口 + */ +public interface ILqFileService { + /** + * 附件保存接口 + * @param file 附件 + * @return 附件存储路径 + * @throws IOException + */ + public String saveFile(MultipartFile file) throws IOException; + + /** + * 附件检索列表 + * @param type 附件类型 + * @return 附件集合 + */ + public List list(String type); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/LqFileServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/LqFileServiceImpl.java new file mode 100644 index 0000000..1527748 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/LqFileServiceImpl.java @@ -0,0 +1,52 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.dto.FileDTO; +import com.casic.missiles.modular.system.service.ILqFileService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.UUID; + +/** + * 附件上传功能 + * + * @author lwh + */ +@Component +public class LqFileServiceImpl implements ILqFileService { + private static final Logger logger = LoggerFactory.getLogger(LqFileServiceImpl.class); + @Value("${casic.file.uploadPath:D://tmp//}") + private String filePath; + + @Override + public String saveFile(MultipartFile file) throws IOException { + if (!file.isEmpty()) { + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + String fileName = new SimpleDateFormat("yyyy-MM").format(new Date()); + File dir = new File(filePath + fileName); + //若此目录不存在,则创建 + if (!dir.exists()) { + dir.mkdirs(); + logger.info("创建文件夹路径为:{}", dir.getPath()); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + return fileName.concat(File.separator).concat(filePrex); + } + return null; + } + + @Override + public List list(String type) { + return null; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/FileMgrController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/FileMgrController.java new file mode 100644 index 0000000..1b47b43 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/FileMgrController.java @@ -0,0 +1,43 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.FileDTO; +import com.casic.missiles.modular.system.service.ILqFileService; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.IOException; + +/** + * 附件管理功能 + * + * @author lwh + */ +@RestController +@RequestMapping("/file") +public class FileMgrController extends BaseController { + + @Resource + private ILqFileService lqFileService; + + /** + * 文件上传路径 + */ + @RequestMapping("/uploadFile") + @ResponseBody + public Object uploadFile(@RequestParam("file") MultipartFile file) throws IOException { + String fileId = lqFileService.saveFile(file); + if (fileId != null) { + FileDTO fileDto = new FileDTO(); + fileDto.setFileId(fileId); + fileDto.setFileName(file.getOriginalFilename()); + return ResponseData.success(fileDto); + } + return ResponseData.error("文件为空"); + } +} \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/FileDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/FileDTO.java new file mode 100644 index 0000000..11af2db --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/FileDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +/** + * 附件返回DTO + * + * @author lwh + */ +@Data +public class FileDTO { + private String id; + private String fileId; + private String fileName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/ILqFileService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ILqFileService.java new file mode 100644 index 0000000..fab51b9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/ILqFileService.java @@ -0,0 +1,27 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.dto.FileDTO; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.List; + +/** + * 附件保存接口 + */ +public interface ILqFileService { + /** + * 附件保存接口 + * @param file 附件 + * @return 附件存储路径 + * @throws IOException + */ + public String saveFile(MultipartFile file) throws IOException; + + /** + * 附件检索列表 + * @param type 附件类型 + * @return 附件集合 + */ + public List list(String type); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/LqFileServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/LqFileServiceImpl.java new file mode 100644 index 0000000..1527748 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/LqFileServiceImpl.java @@ -0,0 +1,52 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.dto.FileDTO; +import com.casic.missiles.modular.system.service.ILqFileService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.UUID; + +/** + * 附件上传功能 + * + * @author lwh + */ +@Component +public class LqFileServiceImpl implements ILqFileService { + private static final Logger logger = LoggerFactory.getLogger(LqFileServiceImpl.class); + @Value("${casic.file.uploadPath:D://tmp//}") + private String filePath; + + @Override + public String saveFile(MultipartFile file) throws IOException { + if (!file.isEmpty()) { + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String filePrex = uuid + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + String fileName = new SimpleDateFormat("yyyy-MM").format(new Date()); + File dir = new File(filePath + fileName); + //若此目录不存在,则创建 + if (!dir.exists()) { + dir.mkdirs(); + logger.info("创建文件夹路径为:{}", dir.getPath()); + } + String pathName = dir.getPath() + File.separator + filePrex; + file.transferTo(new File(pathName)); + return fileName.concat(File.separator).concat(filePrex); + } + return null; + } + + @Override + public List list(String type) { + return null; + } +} diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index d6417f0..efa7559 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -8,6 +8,11 @@ multipart: max-file-size: 50MB max-request-size: 80MB + mvc: + static-path-pattern: /static/** + web: + resources: + static-locations: file:D://tmp ################### guns配置 ################### casic: swagger-open: false #是否开启swagger (true/false) @@ -17,6 +22,8 @@ session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 no-login-urls: /user/login,/kaptcha,/config/baseConfig + file: + uploadPath: D:\\tmp\\ config: export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\ \ No newline at end of file