mirror of
				https://github.com/continew-org/continew-starter.git
				synced 2025-10-31 22:57:19 +08:00 
			
		
		
		
	feat(web): FileUploadUtils 新增下载重载方法
This commit is contained in:
		| @@ -21,7 +21,7 @@ import cn.hutool.core.date.DateUtil; | ||||
| import cn.hutool.core.io.IoUtil; | ||||
| import cn.hutool.core.io.file.FileNameUtil; | ||||
| import cn.hutool.core.util.IdUtil; | ||||
| import jakarta.servlet.http.HttpServletRequest; | ||||
| import cn.hutool.core.util.URLUtil; | ||||
| import jakarta.servlet.http.HttpServletResponse; | ||||
| import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | ||||
| @@ -29,8 +29,8 @@ import org.springframework.http.HttpHeaders; | ||||
| import org.springframework.http.MediaType; | ||||
| import org.springframework.web.multipart.MultipartFile; | ||||
|  | ||||
| import java.io.File; | ||||
| import java.io.FileInputStream; | ||||
| import java.io.*; | ||||
| import java.nio.charset.StandardCharsets; | ||||
| import java.time.LocalDateTime; | ||||
|  | ||||
| /** | ||||
| @@ -83,27 +83,29 @@ public class FileUploadUtils { | ||||
|     /** | ||||
|      * 下载 | ||||
|      * | ||||
|      * @param request    请求对象 | ||||
|      * @param response   响应对象 | ||||
|      * @param file       文件 | ||||
|      * @param autoDelete 下载后自动删除 | ||||
|      * @param response 响应对象 | ||||
|      * @param file     文件 | ||||
|      */ | ||||
|     public static void download(HttpServletRequest request, | ||||
|                                 HttpServletResponse response, | ||||
|                                 File file, | ||||
|                                 boolean autoDelete) { | ||||
|         response.setCharacterEncoding(request.getCharacterEncoding()); | ||||
|     public static void download(HttpServletResponse response, File file) throws IOException { | ||||
|         download(response, new FileInputStream(file), file.getName()); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 下载 | ||||
|      * | ||||
|      * @param response    响应对象 | ||||
|      * @param inputStream 文件流 | ||||
|      * @param fileName    文件名 | ||||
|      * @since 2.5.0 | ||||
|      */ | ||||
|     public static void download(HttpServletResponse response, | ||||
|                                 InputStream inputStream, | ||||
|                                 String fileName) throws IOException { | ||||
|         byte[] bytes = IoUtil.readBytes(inputStream); | ||||
|         response.setCharacterEncoding(StandardCharsets.UTF_8.toString()); | ||||
|         response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); | ||||
|         response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + file.getName()); | ||||
|         try (FileInputStream fis = new FileInputStream(file)) { | ||||
|             IoUtil.copy(fis, response.getOutputStream()); | ||||
|             response.flushBuffer(); | ||||
|         } catch (Exception e) { | ||||
|             log.error(e.getMessage(), e); | ||||
|         } finally { | ||||
|             if (autoDelete) { | ||||
|                 file.deleteOnExit(); | ||||
|             } | ||||
|         } | ||||
|         response.setContentLength(bytes.length); | ||||
|         response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + URLUtil.encode(fileName)); | ||||
|         IoUtil.write(response.getOutputStream(), true, bytes); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user