最近,本人需求将实现word下载以及打包成zip进行下载(单个文件、多个文件)将最近自己学习到的知识点分享给大家

1.实现word模板(三个步骤,最终需要的是upload.ftl)

大家可以参考这篇文档https://www.cnblogs.com/Joanna-Yan/p/5280272.html

2.有些人地区需要对word文档进行加密,防止修改,但是如果设置为只读,是没有效果的。现在我告诉大家一种新的办法(在wps基础下)

打开新的word文档---------->点击工具-------->限制编辑-------->之后就自行操作

3.接下来就是根据模板进行下载word文档

1.获取模板路劲(自己定义)

Configuration configuration = new Configuration();
      configuration.setDefaultEncoding("utf-8");
      configuration.setClassForTemplateLoading(this.getClass(),"/com/study/sta/template"); // FTL文件所存在的位置
2.map进行传值,放值
for (Map<String, Object> inList : list) {
 String name = (String) inList.get("fullname");
map.put("fullname", inList.get("fullname"));
3.word下载
t = configuration.getTemplate("upload5.ftl"); // 文件名
File outFile = new File(path +"/"+ StrUtil.getString(map, "fullname")+idnumber +".docx");
String path_msg = DateUtil.getDateyyyyMMdd();
String filename = "报名表下载"+"/"+path_msg + "/"+ StrUtil.getString(map, "fullname") + StrUtil.getString(map, "idnumber")+"的报名表"+ ".docx";
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8"));
t.process(map, out);
out.flush();
String key = outFile.getCanonicalPath();
InputStream content = new FileInputStream(key);
ObjectMetadata meta = new ObjectMetadata();
meta.setContentLength(key.length());
以上是针对一个word甚至多个word进行下载,
4.针对打包成zip形式传输到客户端下载(多个文件)
本人的想法是在服务器端创建个文件夹,执行一次将这个文件夹里的文件删除
  • 先获取服务器存放word文档的路劲地址
String path = req.getRealPath("/upload");//create a path to save the file uploaded 
  • 再将改文件夹文件先删除(System.gc();    //回收资源,强制性删除,合理使用,因人而异。)
File files = new File(path); 
if (!files.isDirectory()) {  
         files.delete();  
       } else if (files.isDirectory()) {  
        File[] fileList = files.listFiles();  
      for (int i = 0; i < fileList.length; i++) {  
        File delfile = fileList[i]; 
        int tryCount = 0;
  while ( tryCount++ < 10) {
        System.gc();    //回收资源
          delfile.delete(); 
      }
                        
  }  
   }      
  • 最后即可压缩
  resp.addHeader("Content-Disposition", "attachment;filename="+ DateUtil.getDateyyyyMMddHHmmss() + "cert.zip");
  resp.setContentType("application/x-download");
搞定  不懂可以咨询:本人QQ:3056643651

java实现word下载及打包成zip下载(单个文件、多个文件)相关推荐

  1. think.class.php下载,PHP_ThinkPHP实现将本地文件打包成zip下载,首先,将FileToZip.class文件放到T - phpStudy...

    ThinkPHP实现将本地文件打包成zip下载 首先,将FileToZip.class文件放到ThinkPHP/Extend/Library/ORG/Util/文件夹中,FileToZip.class ...

  2. Java导出多个excel压缩成zip下载

    Java导出多个excel压缩成zip下载 maven <!--hutoos工具类根据需要可以导入不同的模块,我这里是导入全部的模块--><dependency><gro ...

  3. springboot中使用freemarker生成word文档并打包成zip下载(简历)

    一.设计出的简历模板图以及给的简历小图标切图         二.按照简历模板图新建简历word文件 :${字段名},同时将图片插入到word中,并将建好的word文件另存为xml文件:    三.直 ...

  4. Java实现文件批量下载,打包成zip压缩包

       最近在做一个管理系统的项目,需要实现一个功能,就是批量下载文件,并打包成zip压缩包.    前端通过POST请求传来要下载的文件列表,Java代码实现如下: import java.io.Bu ...

  5. java指定若干个网络图片,打包为zip下载

    应项目要求需要将多个存在某url地址的图片,打包为zip下载下来 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 2 ...

  6. FTP文件夹下文件打包成zip下载

    private static String encoding = System.getProperty("file.encoding");private static String ...

  7. java 文件夹打包成zip(带有嵌套的那种文件夹)

    文件夹中还嵌套有其他的文件夹或者文件 要进行压缩成zip 代码参考如下: public void zipFile() throws IOException {String sourceFile = & ...

  8. js将多文件打包成zip下载

    import FileSaver from "file-saver"; import JSZip from "jszip";var DownLoad = fun ...

  9. (VUE)纯前端实现图片生成并打包成zip下载

    需要用到的插件包 html2canvas file-saver jszip 首先时使用html2canvas将dom转成图片,这里的图片格式为base64/png const base64List=[ ...

最新文章

  1. 3.5 面向连接的运输:TCP
  2. hdu 1253 胜利大逃亡(BFS)
  3. mac下dashboard小控件开发实例(附源码)
  4. HNOI2017 day1 T3 礼物
  5. 如何在React框架中使用ECharts图库表制图?
  6. 【转】回调函数,函数指针与函数对象
  7. .netcore持续集成测试篇之MVC层单元测试
  8. [记录] --- linux安装redis
  9. Python生成随机数的方法
  10. sha java 应用_Java中常用的加密算法应用MD5,SHA,RSA
  11. 抽象工厂模式 Abstract Factory Pattern
  12. Tomcat默认端口,关闭不必要的安全隐患
  13. 智慧景区项目建设方案之(票务管理详细介绍)
  14. 维基百科中文语料建模
  15. 微博发布头条文章失去文本样式以及图片
  16. PMP第6版 每日工具
  17. UART协议及串口回环
  18. 李某人的第一篇blog
  19. java微服务案例分析_《Java深入微服务原理改造房产销售平台》知识点梳理与问答总结...
  20. 机器学习笔记(吴恩达老师)

热门文章

  1. 2022-2028全球与中国钓鱼器材市场现状及未来发展趋势
  2. 可拖拽悬浮球,仿Assistive Touch弹出窗口
  3. linux 2.6.23时钟中断与调度分析,进程调度Linux内核分析ppt课件
  4. 罗马仕php30和plp30,华为p30和p30pro有什么区别
  5. 全职大师服务器维护,《全职大师》14日更新 中国风皮肤吸睛
  6. 用python的win32com模块替换word中的文字搞定批量打印奖状
  7. 【Windows常用快捷键,建议收藏】
  8. 视频监控线缆的选用和铺设常识
  9. 超级简单的安卓课程设计——书籍信息查询
  10. Ubunut 下安装网易云音乐