博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Grails示例程序-用代码实现将文件压缩后下载
阅读量:7217 次
发布时间:2019-06-29

本文共 1667 字,大约阅读时间需要 5 分钟。

hot3.png

这个示例程序只有一个页面,显示下载链接,点链接后可以下载一个zip包,这个zip包中包含两个文件。

下面是提供下载页面的controller和view

  • 下载页面

SampleZipController.groovy

package com.tutorialimport java.util.zip.ZipEntryimport java.util.zip.ZipOutputStreamclass SampleZipController { def index() { }}

index.gsp

Simple Zip
Download Sample Zip
  • 打包下载完整代码

打包下载完整代码如下。

import java.util.zip.ZipEntryimport java.util.zip.ZipOutputStreamclass SampleZipController { def index() { } def downloadSampleZip() { response.setContentType('APPLICATION/OCTET-STREAM') response.setHeader('Content-Disposition', 'Attachment;Filename="example.zip"') ZipOutputStream zip = new ZipOutputStream(response.outputStream); def file1Entry = new ZipEntry('first_file.txt'); zip.putNextEntry(file1Entry); zip.write("This is the content of the first file".bytes); def file2Entry = new ZipEntry('second_file.txt'); zip.putNextEntry(file2Entry); zip.write("This is the content of the second file".bytes); zip.close(); }}

关键代码注解

1.下面的代码告诉浏览器输出文件的类型和文件名

response.setContentType('APPLICATION/OCTET-STREAM')response.setHeader('Content-Disposition', 'Attachment;Filename="example.zip"')

2.下面的代码创建一个zip文件

ZipOutputStream zip = new ZipOutputStream(response.outputStream);

3.下面的代码创建zip文件中的内容,其实只需要实例化一个ZipEntry,并提供需要压缩文件的字节内容即可

def file1Entry = new ZipEntry('first_file.txt')zip.putNextEntry(file1Entry)zip.write("This is the content of the first file".bytes)

4.最后,创建完一个zip文件后需要关闭

zip.close();
  • 备注

以上示例是一个简单的例子,有兴趣的朋友可以试着改写,将不同类型的文件打包压缩到一个zip文件中。是本文完整代码的下载地址

转载于:https://my.oschina.net/65304586/blog/194418

你可能感兴趣的文章
遗传算法
查看>>
将web网站移动化
查看>>
Application-Session-Cookie
查看>>
Perl的多进程框架(watcher-worker)
查看>>
phpMyAdmin 后台拿webshell
查看>>
Linux 关机 休眠, 关闭移动设备自动挂载 命令
查看>>
Html唤起手机APP,如果有就唤起,如果没有就跳到下载页。
查看>>
Java中File类如何扫描磁盘所有文件包括子目录及子目录文件
查看>>
VC++ 限制窗口的大小范围的方法
查看>>
结对开发-返回一个整数数组中最大子数组的和(首尾相接版)
查看>>
meanshift-聚类
查看>>
不要if else的编程
查看>>
rn.ShowDialog() == DialogResult.OK
查看>>
20160519
查看>>
SCU 3132(博弈)
查看>>
正则表达式
查看>>
delete archivelog all 无法彻底删除归档日志?
查看>>
Redis五大数据类型
查看>>
大型分布式网站架构技术总结
查看>>
矩阵求导与投影梯度相关问题
查看>>