<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>曾华水的博客 &#187; Zip</title>
	<atom:link href="http://www.mrzeng.com/tag/zip/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mrzeng.com</link>
	<description>NO.1 or Nothing</description>
	<lastBuildDate>Wed, 07 Sep 2011 12:47:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>在java项目中使用Zip打包实现文件下载</title>
		<link>http://www.mrzeng.com/post/java-zip-download.html</link>
		<comments>http://www.mrzeng.com/post/java-zip-download.html#comments</comments>
		<pubDate>Sat, 06 Feb 2010 06:15:35 +0000</pubDate>
		<dc:creator>zenghuashui</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Zip]]></category>

		<guid isPermaLink="false">http://www.mrzeng.com/?p=165</guid>
		<description><![CDATA[zip压缩下载不仅可以减少网络传输，而且可以实现批量的文件下载。最近在项目中用到，写了个工具类，如下 /* * @{#} ZipUtils.java Create on Jan 18, 2010 2:45:47 PM * Copyright (c) 2009 by Huashui. */ package com.peaksport.export.zip; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** *@author huashui *@blog http://huashui.org *使用方法，传递response和要打包的文件即可。 */ public class ZipHandler { private HttpServletRequest request; private HttpServletResponse [...]]]></description>
			<content:encoded><![CDATA[<p>zip压缩下载不仅可以减少网络传输，而且可以实现批量的文件下载。最近在项目中用到，写了个工具类，如下<br />
<span id="more-165"></span></p>
<pre class=prettyprint>
/*
 * @{#} ZipUtils.java Create on Jan 18, 2010 2:45:47 PM
 * Copyright (c) 2009 by Huashui.
 */
package com.peaksport.export.zip;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *@author huashui
 *@blog http://huashui.org
 *使用方法，传递response和要打包的文件即可。
 */
public class ZipHandler {

	private HttpServletRequest request;
	private HttpServletResponse response;
	private List&lt;file&gt; fileList = new ArrayList&lt;/file&gt;&lt;file&gt;();

	public ZipHandler(HttpServletResponse response, List&lt;/file&gt;&lt;file&gt; fileList) {
		super();
		this.response = response;
		this.fileList = fileList;
	}

	public ZipHandler() {
		super();
	}

	public void createZip(String filename) throws IOException {
		response.setHeader("Content-disposition", "attachment; filename="
				+ filename);
		response
				.setHeader("Cache-Control",
						"must-revalidate, post-check=0, pre-check=0,private, max-age=0");
		response.setHeader("Content-Type", "application/octet-stream");
		response.setHeader("Content-Type", "application/force-download");
		response.setHeader("Pragma", "public");
		response.setHeader("Cache-Control",
				"must-revalidate, post-check=0, pre-check=0");

		byte[] buffer = new byte[1024];
		ZipOutputStream out = new ZipOutputStream(response.getOutputStream());
		//需要同时下载的文件,以一个list传递进来
		for (File tempfile : fileList) {
			FileInputStream fis = new FileInputStream(tempfile);
			out.putNextEntry(new ZipEntry(tempfile.getName()));
			int len;
			while ((len = fis.read(buffer)) &gt; 0) {
				out.write(buffer, 0, len);
			}
			out.closeEntry();

			fis.close();

		}
		out.flush();
		out.close();

	}

	public HttpServletRequest getRequest() {
		return request;
	}

	public void setRequest(HttpServletRequest request) {
		this.request = request;
	}

	public HttpServletResponse getResponse() {
		return response;
	}

	public void setResponse(HttpServletResponse response) {
		this.response = response;
	}

	public List&lt;/file&gt;&lt;file&gt; getFileList() {
		return fileList;
	}

	public void setFileList(List&lt;/file&gt;&lt;file&gt; fileList) {
		this.fileList = fileList;
	}

}

&lt;/file&gt;</pre>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://www.mrzeng.com/post/struts-2-annotations-example.html" title="Struts 2注解实例一">Struts 2注解实例一</a><br /><small>本文将通过一个前台通过表单输入user，来实现hello user的方式来讲述Struts2中使用注解。

首先要引入以下jar包

commons-fileupload-1.2.1 
commons-io-1.3.2 
commons-logging-1.1 
freemarker-2.3.13 
junit-3.8.1 
onl-2.6.11 
spring-test-2....</small></li><li><a href="http://www.mrzeng.com/post/simple-log4j-configuration.html" title="简单的Log4j配置">简单的Log4j配置</a><br /><small>在struts2的网站上看到一个不错的网站：http://www.vaannila.com 看到里面的一些文章很不错。从今天开始陆续翻译一些文章。今天开始翻译Log4j。

Log4j is a simple and flexible logging framework. In this tutorial you will learn how to configure log4j for yo...</small></li><li><a href="http://www.mrzeng.com/post/mysql-mysqldump-examples.html" title="MySQL的mysqldump常用的语句">MySQL的mysqldump常用的语句</a><br /><small>MySQL数据库备份一般使用phpMyAdmin，但是对于数据量比较大的时候，使用phpMyAdmin就不合适了。一般推荐使用命令行中的dump进行，而且在Linux环境下，可以使用crontab进行定期备份，减少人工的操作。
 


1、备份所有的数据库，可以使用以下语句


/usr/local/webserver/mysql/bin/mysqldump -uroot -p123...</small></li><li><a href="http://www.mrzeng.com/post/jquery-ajax-form-example.html" title="jQuery的Ajax在表单上的运用">jQuery的Ajax在表单上的运用</a><br /><small>jQuery的特点是它的使用起来简单，下面介绍一个今天写的表单实例。
 1、引入jQuery。
 
2、验证和提交的代码
 

function Check() {
	//验证
	if($("#mobile").val()=="" ||$("#uniquecode").val()=="" || $("#textCode").val()==""  ) {
		alert("手机号、...</small></li><li><a href="http://www.mrzeng.com/post/jqgrid-base-study-4.html" title="jqGrid基础学习：4jqGrid的ColModel API">jqGrid基础学习：4jqGrid的ColModel API</a><br /><small>jqGrid已经发布了3.6.3的版本。这个版本主要修复3.6版本的一些bug。详见：http://www.trirand.com/blog/?p=625

ColModel是jqGrid里面最核心的属性。大部分配置都在这里面进行。所有的属性的含义对应如下：





Property
Type
Description
Default


align
string
...</small></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.mrzeng.com/post/java-zip-download.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

