“小学生”日记:java实现文档下载功能的前后台

作为一个误打误撞进入程序猿队伍的“小学生”

想通过这种形式记录下自己在开发学习中遇到的问题和见解


今天在实际开发中遇到一个导出excel的功能,为此来写一篇文档记录一下。

java在实现文档的下载主要流程是这样的:

1.先将文件生成保存在服务器

2.将服务器上的文件下载到客户端(本文介绍内容)

先看看实际的效果


页面显示效果
下载效果
实际下载文件

html页面的实现


导出查询数据Excel




@RequestMapping("/download")

public void download(HttpServletResponse res) {

String fileName ="测试文档下载.xls";

res.setHeader("content-type","application/octet-stream");

res.setContentType("application/octet-stream");

try {

//utf-8的编码格式可以防止文件下载时候的默认文件名乱码

        res.setHeader("Content-Disposition","attachment;filename=" + URLEncoder.encode(fileName,"UTF-8"));

}catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

byte[] buff =new byte[1024];

BufferedInputStream bis =null;

OutputStream os =null;

try {

os = res.getOutputStream();

//通过fileUrl+ fileName的服务器上的文件绝对路径来获取要下载的文件

        bis =new BufferedInputStream(new FileInputStream(new File(fileUrl+ fileName)));

int i = bis.read(buff);

while (i != -1) {

os.write(buff,0, buff.length);

os.flush();

i = bis.read(buff);

}

bis.close();

os.close();

}catch (IOException e) {

e.printStackTrace();

}finally {

if (bis !=null) {

try {

bis.close();

}catch (IOException e) {

e.printStackTrace();

}

}

}

System.out.println("success");

}


注:文中有错误或者不准确的地方望大佬指正!!!

你可能感兴趣的:(“小学生”日记:java实现文档下载功能的前后台)