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

使用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 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
  • ¥50 C++五子棋AI程序编写
  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。