实现浏览器安全下载

这种方式比较安全。不会暴露服务器路径。
csvFile为生成好的csvfile。
 InputStream ins=new FileInputStream(csvFile);//构造一个读取文件的IO流对象
            BufferedInputStream bins=new BufferedInputStream(ins);//放到缓冲流里面
            OutputStream outs=response.getOutputStream();//获取文件输出IO流
            BufferedOutputStream bouts=new BufferedOutputStream(outs);
            response.setContentType("application/x-download");//设置response内容的类型
            response.setHeader("Content-disposition","attachment;filename="+ URLEncoder.encode(filename+ ".csv", "GB2312"));//设置头部信息
            int bytesRead = 0;
            byte[] buffer = new byte[8192];
            //开始向网络传输文件流
            while ((bytesRead = bins.read(buffer, 0, 8192)) != -1) {
                bouts.write(buffer, 0, bytesRead);
            }
            bouts.flush();//这里一定要调用flush()方法
            ins.close();
            bins.close();
            outs.close();
            bouts.close();

你可能感兴趣的:(浏览器)