java web下载word乱码

java web下载word乱码

1.java代码

@PostMapping(value ="downloadWord")

@ApiOperation(value ="下载word")

private void downloadWord(HttpServletRequest request, HttpServletResponse response)throws IOException {

Word07Writer finalWriter =new Word07Writer();

        OutputStream ouputStream = response.getOutputStream();

        String paper_name ="paper_name";

        response.reset();

//        response.setContentType("application/octet-stream");

        response.setContentType("application/msword");

        response.addHeader("Content-Disposition", "attachment; filename=\"" +"test" +".docx\"");

        response.setHeader("Accept-ranges", "bytes");

        try {

String[] arrstrs =new String[]{"一", "二", "三", "四", "五", "六", "七", "八"};

            AtomicInteger dnum =new AtomicInteger(0);//大题title

            AtomicInteger num =new AtomicInteger(1);//小题title

Set strings =new HashSet<>();

            finalWriter.addText(ParagraphAlignment.CENTER, new Font("方正小标宋简体", Font.PLAIN, 20), paper_name);

            finalWriter.addText(ParagraphAlignment.CENTER, new Font("方正小标宋简体", Font.PLAIN, 20), paper_name);

            finalWriter.addText(ParagraphAlignment.CENTER, new Font("方正小标宋简体", Font.PLAIN, 20), paper_name);

            finalWriter.addText(ParagraphAlignment.CENTER, new Font("方正小标宋简体", Font.PLAIN, 20), paper_name);

            finalWriter.addText(ParagraphAlignment.CENTER, new Font("方正小标宋简体", Font.PLAIN, 20), paper_name);

            finalWriter.addText(ParagraphAlignment.CENTER, new Font("方正小标宋简体", Font.PLAIN, 20), paper_name);

            finalWriter.addText(ParagraphAlignment.CENTER, new Font("方正小标宋简体", Font.PLAIN, 20), paper_name);

//            finalWriter.flush(FileUtil.file("D:/" + title + ".docx"));

            finalWriter.flush(ouputStream);

        }finally {

ouputStream.close();

            finalWriter.close();

        }

}

2.web端代码

let url_post ='';

//post方式,param为所需要传的参数,

// responseType: 'arraybuffer'一定要写,否则下载的文件会出现乱码

axios.post(url_post, {}, {responseType:'arraybuffer' },{

headers: {

'Authorization':'Bearer ' +'23cdcd34-726f-4a22-84ea-a3ec9c7a3813',

  }

})

.then(res => {

let blob =new Blob([res.data], {type:'application/vnd.openxmlformats-officedocument.wordprocessingml.document'}); //type为所需要下载的文件格式,以xls文件为例

    //浏览器兼容,Google和火狐支持a标签的download,IE不支持

    if (window.navigator &&window.navigator.msSaveBlob) {

//IE浏览器、微软浏览器

      /* 经过测试,微软浏览器Microsoft Edge下载文件时必须要重命名文件才可以打开        IE可不重命名,以防万一,所以都写上比较好*/

      window.navigator.msSaveBlob(blob, '文件.docx');

    }else {

//其他浏览器

      let link =document.createElement('a'); // 创建a标签

      link.style.display ='none';

      let objectUrl =URL.createObjectURL(blob);

      link.href = objectUrl;

      link.click();

      URL.revokeObjectURL(objectUrl);

    }

})

.catch(err => {

this.$message.error(err.message);

  });

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,135评论 0 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 6,946评论 0 2
  • 今天上午陪老妈看病,下午健身房跑步,晚上想想今天还没有断舍离,马上做,衣架和旁边的的布衣架,一看乱乱,又想想自己是...
    影子3623253阅读 2,953评论 3 8