话不多说直接代码,拿去改一下参数就可以直接使用下面是service,里面代码可以处理word转html 标签的问题,生成zip,等等 各种可以实现
public void cwriteWord(String text, String wordName, HttpServletResponse response) throws IOException {
File temp = File.createTempFile(wordName, ".docx");
System.out.println("临时目录路径:" + temp.getAbsolutePath());
temp.deleteOnExit();
BufferedWriter out = new BufferedWriter(new FileWriter(temp));
out.write(text);
out.close();
// 得到文件路径
String filePath = temp.getAbsolutePath();
File fileWord = new File(filePath);
FileInputStream fileInputStream = new FileInputStream(fileWord);
//设置Http响应头告诉浏览器下载这个附件,下载的文件名也是在这里设置的
response.setHeader("Content-Disposition", "attachment;Filename=" + URLEncoder.encode(wordName + ".docx", "UTF-8"));
OutputStream outputStream = response.getOutputStream();
byte[] bytes = new byte[2048];
int len = 0;
while ((len = fileInputStream.read(bytes)) > 0) {
outputStream.write(bytes, 0, len);
}
System.out.println("删除后的路径" + temp.getAbsolutePath());
fileInputStream.close();
outputStream.close();
}
controller 层
这里使用get的原因是方便测试的时候直接在浏览器点下载。
@GetMapping("/reportWrite")
public void writeWord(String text, String wordName, HttpServletResponse response) throws Exception {
contentService.cwriteWord(text, wordName, response);
}
下载成功页面