javaweb简易下载文件
Controller方法
@RequestMapping("/downloadImg")
public String downloadTemplate(String name,HttpServletResponse response, HttpServletRequest request) throws UnsupportedEncodingException {
//name是你要下载的文件名的前缀
//我要下载的是一个图片
String fileName = name+".jpg"; //下载的文件名
// 如果文件名不为空,则进行下载
if (fileName != null) {
//设置文件路径
String realPath = "E:\\shangchuan";
File file = new File(realPath, fileName);
// 如果文件名存在,则进行下载
if (file.exists()) {
// 配置文件下载
response.setHeader("content-type", "application/octet-stream");
response.setContentType("image/jpeg");
// 下载文件能正常显示中文
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
// 实现文件下载
byte[] buffer = new byte[1024];
FileInputStream fis = null;
BufferedInputStream bis = null;
try {
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
OutputStream os = response.getOutputStream();
int i = bis.read(buffer);
while (i != -1) {
os.write(buffer, 0, i);
i = bis.read(buffer);
}
System.out.println("Download the song successfully!");
}
catch (Exception e) {
System.out.println("Download the song failed!");
}
finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
return null;
}
vue-前端关键代码
window.open( "http:///localhost:8888/downloadImg?name="+this.name)