代码
只需要改
1 this.getClass().getResourceAsStream("/templates/wxa32c397d9ee915f5.o6zAJswmDBS6GqsSGCDsKTOTteFk.NBWTAYou9QRQ928148cc0de489844264c42287869f44.png");
2
response.setHeader(“Content-Disposition”, “attachment;filename=”+ new String((“wxa32c397d9ee915f5.o6zAJswmDBS6GqsSGCDsKTOTteFk.NBWTAYou9QRQ928148cc0de489844264c42287869f44” + “.png”).getBytes(“gbk”), “iso-8859-1”));//下载文件的名称
文件要放在templates文件夹
package com.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
@Controller
public class hellocontroller {
@ResponseBody
@RequestMapping(value = "/downloadFile")
public void downloadFile(HttpServletResponse response) throws IOException {
InputStream f= this.getClass().getResourceAsStream("/templates/wxa32c397d9ee915f5.o6zAJswmDBS6GqsSGCDsKTOTteFk.NBWTAYou9QRQ928148cc0de489844264c42287869f44.png");
response.reset();
response.setContentType("application/x-msdownload;charset=utf-8");
try {
response.setHeader("Content-Disposition", "attachment;filename="+ new String(("wxa32c397d9ee915f5.o6zAJswmDBS6GqsSGCDsKTOTteFk.NBWTAYou9QRQ928148cc0de489844264c42287869f44" + ".png").getBytes("gbk"), "iso-8859-1"));//下载文件的名称
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
ServletOutputStream sout = response.getOutputStream();
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(f);
bos = new BufferedOutputStream(sout);
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
bos.flush();
bos.close();
bis.close();
} catch (final IOException e) {
throw e;
} finally {
if (bis != null){
bis.close();
}
if (bos != null){
bos.close();
}
}
}
}
在浏览器访问
http://localhost:8080/downloadFile