首页 > 编程语言 >java下载word文档docx

java下载word文档docx

时间:2022-08-25 18:11:28浏览次数:60  
标签:docx java String filename toClient new word response 下载

原文链接:https://blog.csdn.net/m0_51496483/article/details/122124567

普通的下载功能,不过依然有一个值得关注的重要点……请看到最后!

***HTML***按钮就不上了,你开心设计成button和a我都没有意见;
***JS***代码:

function downLoad(){
self.location='def/downLoadWord.do';
// $.ajax({
// type: "POST",
// url: 'def/downLoadWord.do',
// dataType:'json',
// cache: false,
// success: function(data){

// }
// });
}
1
2
3
4
5
6
7
8
9
10
11
12
***JAVA***接口:

/**
* 下载word文档
*
* @param request
* @param response
* @return
* @throws IOException
*/
@RequestMapping(value = "/downLoadWord")
@ResponseBody
public void downLoadWord(HttpServletRequest request, HttpServletResponse response) throws IOException {
try {
String path = "/home/iceberg/webApp/piccEdw/icerbergFile/MetadataUserManual.docx";
// path是指欲下载的文件的路径。
File file = new File(path);
// 取得文件名。
String filename = file.getName();
// 取得文件的后缀名。
String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();

// 以流的形式下载文件。
InputStream fis = new BufferedInputStream(new FileInputStream(path));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 设置response的Header
response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
response.addHeader("Content-Length", "" + file.length());
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (IOException ex) {
ex.printStackTrace();
}

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
哎,就这么个下载功能,我整了一个多小时,为什么呢?因为最开始用的ajax请求,代码也走了,文件也读了,就是没下载……后来,我终于学会了,如何去……啊呸,后来,我灵机一动,改了个请求方式,就完美了~这是为什么呢?为什么呢?……小菜鸟的灵魂颤抖……

标签:docx,java,String,filename,toClient,new,word,response,下载
From: https://www.cnblogs.com/fswhq/p/16623018.html

相关文章

  • 图文详解 Java 泛型,写得太好了!
    泛型——一种可以接收数据类型的数据类型,本文将通俗讲解Java泛型的优点、方法及相关细节。一、泛型的引入我们都知道,继承是面向对象的三大特性之一,比如在我们向集合中......
  • 你真的了解java的泛型吗?
    1.java可以声明泛型数组吗?​ 我们都知道在java中声明一个普通数组,但是你知道如何声明一个泛型数组吗?​ 先来看一个简单的例子,Animals是Cat的父类,思考下Animals[]和Cat[......
  • java操作selenium浏览器自动化操作
    seleniumgithubselenium官网各类型浏览器webDriver驱动下载chrome浏览器webDriver驱动下载,注意要与电脑上实际安装的浏览器版本相对应原理说明:java代码直接通过sele......
  • Caused by: java.lang.UnsupportedClassVersionError: com/hfplm/handler/HFEBOMation
    Causedby:java.lang.UnsupportedClassVersionError:com/hfplm/handler/HFEBOMationHandlerhasbeencompiledbyamorerecentversionoftheJavaRuntime(classf......
  • Java 连接 MySQL
    让Java和MySQL连接起来-囧雪诺-博客园 https://www.cnblogs.com/jonsnow/p/6246131.htmlJava连接MySQL需要驱动包,可以下载菜鸟教程提供的 jar包:http://stati......
  • 【Java】LambdaStream
    JavaLambdaStreamFactoryimportjava.util.*;importjava.util.stream.*;publicclassLambdaStream{publicstatic<T>Stream<T>of(Spliterator<T>split......
  • Java生成带logo的二维码,并将二维码添加到图片中
    1.pom.xml<!--生成二维码--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-extra</artifactId><version>5.4.3</version></dependency><d......
  • java的String.format中的百分号
    System.out.println(String.format("百分比%.2f%",(float)80/90));错误信息:Exceptioninthread"main"java.util.UnknownFormatConversionException:Conversion=......
  • JavaScript中改变鼠标指针样式的方法
    JavaScript中改变鼠标指针样式的方法    在js中我们可以通过style对象的cursor属性来设置鼠标指针的样式,例varbody=document.querySelector("body") body.style......
  • JAVA---06
    第六天1.instanceof和类型转化instanceof:用于比较两个对象是否有继承关系类型转化:低可以直接转高Person //父类Student//子类   //子类转化为父类......