SpringMVC下载文件(link形式,form 形式和ajax形式)
三种形式:
- link直接下载文件 (文件必须已经存在)
- 点击链接调用后端接口下载文件
- ajax方式下载文件
1. link直接下载
<h1>link直接下载</h1>
<a href="/upload/测试.csv" value="下载">文件下载</a>
2.点击链接调用后端接口下载
-
工具类
DownloadUtil
- 用来设置下载文件的response的格式和文件名
- 转换文件名,防止下载的时候文件名是乱码
package com.min.spring.util;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class DownloadUtil {
//设置下载文件的response的格式和文件名
public static HttpServletResponse setResponseForDownload(HttpServletResponse response, String filename) {
//配置response内容
response.reset();
response.setCharacterEncoding("UTF-8");
//设置为二进制
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + filename);
return response;
}
//转换文件名,防止下载的时候文件名是乱码
public static String filenameEncode(HttpServletRequest request, String filename) throws UnsupportedEncodingException {
String userAgent = request.getHeader("User-Agent");
if (/* IE 8 至 IE 10 */
userAgent.toUpperCase().contains("MSIE") ||
/* IE 11 */
userAgen