springmvc+mybatis下载项目自带模板


1、首先如果要获取javaweb项目中的文件在哪,用到的代码:request.getSession().getServletContext().getRealPath("/WEB-INF/down/花销数据导入模板.xlsx"),这样就能获得在WEB-INF文件夹下的down文件夹下的"花销数据导入模板.xlsx"文件。

2、如果要下载的文件带有中文会出现下载下来的文件文件名乱码的情况,此时用到如下代码:

response.setContentType("application/msexcel"); //下面三行是关键代码,处理乱码问题 
response.setCharacterEncoding("utf-8"); 
response.setHeader("Content-disposition", "attachment; filename="+new String(fileName.getBytes("gbk"), "iso8859-1")+".xls");

3、下载项目自带模板后台代码如下(springmvc+mybatis框架):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/**
   * 下载模板
   * @author dxy *
   * @param request
   * @param response
   * @throws Exception
*/
@RequestMapping ( "downLoadTemplate" )
@Action (description= "编辑补贴项目" )
public  void  downLoadTemplate(HttpServletRequest request,HttpServletResponse response)  throws  Exception{
    String path = request.getSession().getServletContext().getRealPath( "/down/花销数据导入模板.xlsx" );
    File file =  new  File(path);
        String filename = file.getName(); // 获取文件名称
        InputStream fis =  new  BufferedInputStream( new  FileInputStream(path));
        byte [] buffer =  new  byte [fis.available()];
        fis.read(buffer);
        fis.close();
        response.reset();     // 先去掉文件名称中的空格,然后转换编码格式为utf-8,保证不出现乱码,这个文件名称用于浏览器的下载框中自动显示的文件名
        response.addHeader( "Content-Disposition" "attachment; filename=" + new  String(filename.getBytes( "gbk" ),  "iso8859-1" ));
        response.addHeader( "Content-Length" ""  + file.length());
        OutputStream os =  new  BufferedOutputStream(response.getOutputStream());
        response.setContentType( "application/octet-stream" );
        os.write(buffer); // 输出文件
        os.flush();
        os.close();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值