工作中遇到了这个问题,上传的时候用户可以一次性上传多个附件,这样下载的时候就有问题了,一个文件还好下载,要是多个附件的话那就不好弄了,在网上找了一下没找到一个下载多个文件的好的解决方法,于是只好先把这些附件打包然后下载下来了.这里面有文件名为中文的时候乱码的问题,网上有两个解决方法,第一:使用apache的ant.jar包,而不用JDK自带的,我用的就是这种方法,第二种就不多说了,大家可以去搜搜.
/**
* 将多个模版打包成一个压缩包
* @param excelUpLoadIndexBoList
*/
public void getZipFile(List<ExcelUpLoadIndexBo> excelUpLoadIndexBoList,String outPutFilePath)
{
try
{
BufferedReader in;
//创建文件输出流对象
FileOutputStream out = new FileOutputStream(outPutFilePath);
ZipOutputStream zipOut = new ZipOutputStream(out); //创建ZIP数据输出流对象
ZipEntry entry;
int n;
int len = excelUpLoadIndexBoList.size();
for(int i=0; i<len;i++)//创建文件输入流对象
{
String filefullName = excelUpLoadIndexBoList.get(i).getFileName();
String filePath = excelUpLoadIndexBoList.get(i).getFilePath();
filePath = filePath + File.separator + filefullName;
in= new BufferedReader(
new InputStreamReader(new FileInputStream(filePath),"ISO8859-1"));
entry = new ZipEntry(filefullName);
zipOut.putNextEntry(entry);
//向压缩文件中输出数据
while((n=in.read()) != -1)
{
zipOut.write(n);
}
in.close();
}
zipOut.close();
out.close();
}catch(Exception e)
{
System.out.println(e);
}
}