qq_34696943 2019-10-28 19:58 采纳率: 20%
浏览 499
已结题

使用freemarker工具导出word,windows中没问题,Linux中下载后发现word打不开,最后一行多了{}符号,怎么处理。

使用freemarker导出word,将生成的word放置在固定的文件夹,然后通过response将此文件下载下来,但是用office打开下载后的word时,提示最后一行语法错误,用editplus打开后发现最后一行多出{}符号,怎么解决?

            response.setCharacterEncoding("utf-8");
            //response.setContentType("multipart/form-data");
            response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(targetHtmlPath, "utf-8"));
            FileInputStream is = new FileInputStream(htmlFile);
            dis = new DataInputStream(is);
            os = response.getOutputStream();
            byte[] buffer = new byte[512000];
            int readSize = 0;
            int i = 0;
            String osName = System.getProperty("os.name");
            if (Pattern.matches("Linux.*", osName)) {
                while ((readSize = dis.read(buffer)) != -1) {
                    System.out.println(i);
                    System.out.println("Linux"+readSize);
                    os.write(buffer, 0, readSize);
                    i++;
                }
            } else {
                while ((readSize = dis.read(buffer)) != -1) {
                    System.out.println(i);
                    System.out.println("windows"+readSize);
                    os.write(buffer, 0, readSize);
                    i++;
                }
            }
editplus 打开后的word,多了一个{}如图:
![图片说明](https://img-ask.csdn.net/upload/201910/28/1572263895_556297.png)
  • 写回答

1条回答

  • threenewbee 2019-10-28 21:14
    关注

    感觉{}是你的web服务器写入流写多的东西,比如说你的jsp页面上有没有{}
    或者你代码里返回了什么多余的字符
    FileInputStream is = new FileInputStream(htmlFile);
    这里下断点,看你htmlFile里面有没有这多余的字符

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。