| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- package com.ydtech.modules.task.controller;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.modules.task.entity.po.TaskFile;
- import com.ydtech.modules.task.service.TaskFileService;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- import org.springframework.web.multipart.MultipartFile;
- import java.io.File;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import java.time.LocalDateTime;
- import java.time.format.DateTimeFormatter;
- @Api(tags = "任务文件controller")
- @RestController
- @RequestMapping("/task/file")
- public class TaskFileController {
- @Value("${upload.file.path}")
- private String uploadPath;
- @Value("${upload.file.url}")
- private String uploadUrl;
- private String taskPath = "/task/";
- @Autowired
- private TaskFileService taskFileService;
- @PostMapping("/upload")
- @ApiOperation("上传文件")
- public HttpResult<Object> upload(@RequestParam("file") MultipartFile file){
- if(file.isEmpty()){
- return HttpResult.error("文件为空,请重新上传");
- }
- try{
- String fileName = file.getOriginalFilename();
- String[] split = file.getOriginalFilename().split("\\.");
- String fileType = split[split.length-1];
- // 获取文件的字节
- byte[] bytes = file.getBytes();
- // 指定文件保存路径,这里假设保存在项目的uploads目录下
- String destinationFilePath = uploadPath + taskPath + String.valueOf(System.currentTimeMillis()) + "." + fileType;
- // 保存文件到服务器的逻辑,例如使用java.nio.file包的Files类
- File dir = new File(uploadPath + taskPath);
- if (!dir.exists()) {
- dir.mkdirs();
- }
- file.transferTo(new File(destinationFilePath));
- TaskFile taskFile = new TaskFile();
- taskFile.setFileName(fileName);
- taskFile.setFileType(fileType);
- taskFile.setFileUrl(uploadUrl + taskPath + String.valueOf(System.currentTimeMillis()) + "." + fileType);
- taskFile.setCreateTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
- return HttpResult.ok(taskFile);
- }catch (Exception e){
- e.printStackTrace();
- return HttpResult.error("文件上传失败");
- }
- }
- @PostMapping("/uploadAnnex")
- @ApiOperation("上传文件附件")
- public HttpResult<Object> upload(@RequestParam("file") MultipartFile file,@RequestParam("taskId") String taskId){
- if(file.isEmpty()){
- return HttpResult.error("文件为空,请重新上传");
- }
- taskId = taskId.replaceAll(",","");
- try{
- String fileName = file.getOriginalFilename();
- String[] split = file.getOriginalFilename().split("\\.");
- String fileType = split[split.length-1];
- // 获取文件的字节
- byte[] bytes = file.getBytes();
- // 指定文件保存路径,这里假设保存在项目的uploads目录下
- String destinationFilePath = uploadPath + taskPath + fileName;
- // 保存文件到服务器的逻辑,例如使用java.nio.file包的Files类
- File dir = new File(uploadPath + taskPath);
- if (!dir.exists()) {
- dir.mkdirs();
- }
- file.transferTo(new File(destinationFilePath));
- TaskFile taskFile = new TaskFile(taskId,fileName,fileType,destinationFilePath);
- taskFileService.save(taskFile);
- }catch (Exception e){
- e.printStackTrace();
- return HttpResult.error("文件上传失败");
- }
- return HttpResult.ok("");
- }
- }
|