| | |
| | | import com.mindskip.xzs.base.RestResponse; |
| | | import com.mindskip.xzs.configuration.RuoYiConfig; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.core.io.FileSystemResource; |
| | | import org.springframework.core.io.Resource; |
| | | import org.springframework.http.HttpHeaders; |
| | | import org.springframework.http.MediaType; |
| | | 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.RestController; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.File; |
| | | import java.io.FileInputStream; |
| | | import java.io.IOException; |
| | | import java.io.OutputStream; |
| | | import java.nio.file.Files; |
| | | import java.util.HashMap; |
| | | import java.util.UUID; |
| | | |
| | |
| | | @PostMapping("/upload") |
| | | public RestResponse uploadFile(MultipartFile file) throws Exception |
| | | { |
| | | // 检查文件是否为空 |
| | | if (file.isEmpty()) { |
| | | return RestResponse.fail(500, "上传的文件为空"); |
| | | } |
| | | // // 检查文件是否为空 |
| | | // if (file.isEmpty()) { |
| | | // return RestResponse.fail(500, "上传的文件为空"); |
| | | // } |
| | | try { |
| | | // 获取文件名 |
| | | String originalFileName = StringUtils.cleanPath(file.getOriginalFilename()); |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 下载文件(单个) |
| | | */ |
| | | @GetMapping("/download") |
| | | public void download(@RequestParam String url, @RequestParam String fileName, HttpServletResponse response) throws Exception |
| | | { |
| | | // 提取文件路径 |
| | | String filePath = ruoYiConfig.getUrl() + File.separator + url; |
| | | |
| | | File file = new File(filePath); |
| | | |
| | | // 检查文件是否存在 |
| | | if (!file.exists()) { |
| | | throw new RuntimeException("文件不存在"); |
| | | } |
| | | |
| | | // 读取文件内容 |
| | | byte[] fileContent = Files.readAllBytes(file.toPath()); |
| | | |
| | | // 设置响应头 |
| | | response.setHeader("Content-Disposition", "attachment; filename=" + fileName); |
| | | response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); |
| | | |
| | | // 将文件内容写入响应输出流 |
| | | response.getOutputStream().write(fileContent); |
| | | response.getOutputStream().flush(); |
| | | } |
| | | |
| | | } |