参考 :
https://www.jianshu.com/p/4c52cb691f54
https://blog.csdn.net/ios_xumin/article/details/52944366
关于response的相关介绍,请参考链接
response响应实现文件下载,主要有以下注意点:
- 1.添加response响应头与媒体类型
response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
response.setContentType("multipart/form-data");
- 2.response读取输出流并写出
IoUtil.writeFile(file, response.getOutputStream());
- 3.页面访问对应接口,此处直接通过跳转访问
window.location.href = "path";
tool
public class IoUtil {
/**
* 写出
* @param file
* @param out
*/
public static void writeFile(File file, OutputStream out) {
FileInputStream fs = null;
try{
fs = new FileInputStream(file);
//循环写入输出流
byte[] b = new byte[1024*8];
int len;
while ((len = fs.read(b)) > 0) {
out.write(b, 0, len);
}
}catch (Exception e){
throw new RuntimeException("流写出错误");
}finally {
close(fs,out);
}
}
/**
* 关流
*/
public static void close(InputStream is){
if(is!=null){
try{
is.close();
is = null;
}catch (Exception e2){
throw new RuntimeException("关闭流失败");
}
}
}
/**
* 关流
*/
public static void close(OutputStream os){
if(os!=null){
try{
os.close();
os = null;
}catch (Exception e2){
throw new RuntimeException("关闭流失败");
}
}
}
/**
* 关流
*/
public static void close(InputStream is , OutputStream os){
if(is!=null){
try{
is.close();
is = null;
}catch (Exception e2){
throw new RuntimeException("关闭流失败");
}
}
if(os!=null){
try{
os.close();
os = null;
}catch (Exception e2){
throw new RuntimeException("关闭流失败");
}
}
}
}
具体实现就要结合业务了啊