java读取资源目录下word文件并设置浏览器下载导出
前言
本文解决java读取资源目录下word文件并设置HttpServletResponce解决下载导出中文名乱码的情况。
一、导出方法
1.读取项目模板并导出中文名文档
代码如下(示例):
public void export(HttpServletResponse response) throws Exception {
String fileTemplateName = "offlineOrderTemplate.docx";
String exportFileName = "数据同步离线文档.docx";
//设置请求头
response.setCharacterEncoding(Encoding.UTF_8);
response.setContentType("application/octet-stream");
String disposition = String.format("attachment;filename=%s;filename*=utf-8''%s", exportFileName, URLEncoder.encode(exportFileName, Encoding.UTF_8));
response.setHeader("Content-Disposition", disposition);
OutputStream outputStream = response.getOutputStream();
try (InputStream inputStream = new FileInputStream("src\\main\\resources\\static\\" + fileTemplateName)) {
byte[] bytes = new byte[1024];
int count = 0;
while ((count = inputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, count);
}
} catch (IOException e) {
e.printStackTrace();
}
}
总结
按照该方法设置请求头,可解决导出中文乱码情况,导出word文档内容也无格式缺失情况