mirror of
https://github.com/continew-org/continew-starter.git
synced 2025-09-09 20:57:23 +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.IoUtil;
|
||||||
import cn.hutool.core.io.file.FileNameUtil;
|
import cn.hutool.core.io.file.FileNameUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import cn.hutool.core.util.URLUtil;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -29,8 +29,8 @@ import org.springframework.http.HttpHeaders;
|
|||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.*;
|
||||||
import java.io.FileInputStream;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -83,27 +83,29 @@ public class FileUploadUtils {
|
|||||||
/**
|
/**
|
||||||
* 下载
|
* 下载
|
||||||
*
|
*
|
||||||
* @param request 请求对象
|
* @param response 响应对象
|
||||||
* @param response 响应对象
|
* @param file 文件
|
||||||
* @param file 文件
|
|
||||||
* @param autoDelete 下载后自动删除
|
|
||||||
*/
|
*/
|
||||||
public static void download(HttpServletRequest request,
|
public static void download(HttpServletResponse response, File file) throws IOException {
|
||||||
HttpServletResponse response,
|
download(response, new FileInputStream(file), file.getName());
|
||||||
File file,
|
}
|
||||||
boolean autoDelete) {
|
|
||||||
response.setCharacterEncoding(request.getCharacterEncoding());
|
/**
|
||||||
|
* 下载
|
||||||
|
*
|
||||||
|
* @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.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
||||||
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + file.getName());
|
response.setContentLength(bytes.length);
|
||||||
try (FileInputStream fis = new FileInputStream(file)) {
|
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + URLUtil.encode(fileName));
|
||||||
IoUtil.copy(fis, response.getOutputStream());
|
IoUtil.write(response.getOutputStream(), true, bytes);
|
||||||
response.flushBuffer();
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error(e.getMessage(), e);
|
|
||||||
} finally {
|
|
||||||
if (autoDelete) {
|
|
||||||
file.deleteOnExit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user