@RequestMapping(value="/doData1/{ids}", method=RequestMethod.GET)
@ResponseBody
public void doData1(@PathVariable String ids,HttpServletRequest request,HttpServletResponse response) throws IOException {
String[] strArray = null;
ids = ids.substring(1, ids.length());
strArray = ids.split(";");
String filename ="媒资库.zip";
byte[] bt;
bt = filename.getBytes("UTF-8");
filename = new String(bt, "8859_1");
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment;filename="
+filename);
ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());
//放入需下载文件地址
zipFile(strArray, zos);
zos.flush();
zos.close();
}
private void zipFile(String[] ids, ZipOutputStream zos)
throws IOException {
for (int i = 0; i < ids.length; i++) {
EssayArticle essayArticle = essayArticleService.get(ids[i]);
String attachmentId = essayArticleRecordService.getNewAttachment(ids[i]);
System.out.println(attachmentId);
InputStream in = gridFsOperations.findOne(query(whereFilename().is(attachmentId))).getInputStream();
String fileName = essayArticle.getArticleTitle();//下载文件时显示的文件保存名称
zos.putNextEntry(new ZipEntry("/"+essayArticle.getId()+"/"+fileName+"."+essayArticle.getFileFormat()));
byte[] buffer = new byte[1024];
int r = 0;
while ((r = in.read(buffer)) != -1) {
zos.write(buffer, 0, r);
}
zos.closeEntry();
in.close();
//json file
String content = "{\"id\":\""+essayArticle.getId()+"\",\"articleTitle\":\""+essayArticle.getArticleTitle()+"\"}";
zos.putNextEntry(new ZipEntry("/"+essayArticle.getId()+"/"+essayArticle.getId()+".json"));
zos.write(content.getBytes());
zos.closeEntry();
}
}