lbsxxa 2011-10-09 10:35
浏览 228
已采纳

客户端下载服务器端的excel模板文件,

jsp页面有个“模板下载”按钮,点击按钮后,将位于服务器端的某个文件夹下的excel模板文件打开,只用打开就可以,请求帮助怎么实现?

  • 写回答

5条回答 默认 最新

  • AngelAndAngel 2011-10-09 10:50
    关注

    对,我的示例代码大致上是这样的,你按需修改
    [code="java"]
    protected void downloadFile(String filePath, String showNam, boolean isOnLine) throws IOException{

           File f = new File(filePath);
           HttpServletResponse response = getResponse();
           if (!f.exists()) {
             response.sendError(404, "File not found!");
             return ;
           }
    
           response.reset(); //非常重要
           if (isOnLine) { //在线打开方式
             URL u = new URL("file:///" + filePath);
             response.setContentType(u.openConnection().getContentType());
             response.setHeader("Content-Disposition", "inline; filename=\""  + new String(showNam.getBytes("gb2312"),"iso-8859-1") + "\"");
            //文件名应该编码成UTF-8
           }
           else { //纯下载方式
             response.setContentType("application/x-msdownload");
             response.setHeader("Content-Disposition", "attachment; filename=\""+ new String(showNam.getBytes("gb2312"),"iso-8859-1") + "\"");
    
           }
           InputStream inStream = new FileInputStream(f);
           OutputStream outStream = response.getOutputStream();
           byte[] b = new byte[100];
           int len;
            try {
                while ((len = inStream.read(b)) > 0) outStream.write(b, 0, len);
                inStream.close();
            } catch (IOException e) {
                logger.error("file [" + f + "] download fail.");
                logger.error(e);
            } 
    
    
            outStream.flush();
            outStream.close();
    
    
    
    }
    

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决