- 静态资源文件一定要放入resource文件下(估计 java 除静态资源以外都需要编译。其他的都会路径会出现问题)
- 静态资源文件 springBoot 定义了5个位置
- 默认情况下,一共有5个位置可以放静态资源,五个路径分别是如下5个:
classpath:/META-INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
/
- 获取静态资源文件下的文件
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
@Autowired
private ResourceLoader resourceLoader;
public void downloadFile(HttpServletRequest request, HttpServletResponse response) {
InputStream inputStream = null;
ServletOutputStream servletOutputStream = null;
try {
String fileName = "人员信息录入样表.zip";
String path = "upload/人员信息录入样表.zip";
Resource resource = resourceLoader.getResource("classpath:" + path);
response.setContentType("multipart/form-data");
response.addHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.addHeader("charset", "utf-8");
response.addHeader("Pragma", "no-cache");
String encodeName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
response.setHeader("Content-Disposition", "attachment; filename=\"" + encodeName + "\"; filename*=utf-8''" + encodeName);
inputStream = resource.getInputStream();
servletOutputStream = response.getOutputStream();
IOUtils.copy(inputStream, servletOutputStream);
response.flushBuffer();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (servletOutputStream != null) {
servletOutputStream.close();
}
if (inputStream != null) {
inputStream.close();
}
System.gc();
} catch (Exception e) {
e.printStackTrace();
}
}
}
- 借鉴他人 再次做个记录