jfinal多图片下载问题

师傅被妖怪抓走了 发布于 2016/10/13 18:18
阅读 111
收藏 0

@JFinal 你好,想跟你请教个问题:请问jfinal怎么下载多个图片。renderfile(文件)一次只能返回一个,多个下载会把最后一个下载下来。数据库文件名以逗号分割。

加载中
0
费振龙
费振龙
/**
* 图片批量下载 将多个图片压缩到ZIP包中下载
*/
public void batchImage() {
String path = "D:\\webapps\\userfile\\default\\picture\\";
String claimId = getPara("claimId", "L161012000007");
ArrayList<String> alList = new ArrayList<>();
alList.add(rd.get("image1", "").toString());
alList.add(rd.get("image2", "").toString());
alList.add(rd.get("image3", "").toString());
alList.add(rd.get("image4", "").toString());
alList.add(rd.get("image5", "").toString());
alList.add(rd.get("image6", "").toString());
alList.add(rd.get("image7", "").toString());
alList.add(rd.get("image8", "").toString());
alList.add(rd.get("image9", "").toString());

OutputStream os;
try {
os = new BufferedOutputStream(new FileOutputStream(path
+ rd.getStr("licencno") + "_" + rd.get("mobile")
+ ".zip"));
ZipOutputStream zos = new ZipOutputStream(os);
byte[] buf = new byte[8192];
int len;
for (int i = 0; i < alList.size(); i++) {
File file = new File(path+alList.get(i));
if (!file.isFile())
continue;
ZipEntry ze = new ZipEntry(file.getName());
zos.putNextEntry(ze);
BufferedInputStream bis = new BufferedInputStream(
new FileInputStream(file));
while ((len = bis.read(buf)) > 0) {
zos.write(buf, 0, len);
}
zos.closeEntry();
}
zos.closeEntry();
zos.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
renderFile("test.zip"));
}
师傅被妖怪抓走了
师傅被妖怪抓走了
其实几天前就想到用压缩的办法就只返回一个,但是又想着有的浏览器也是有下载几张多次出现保存提示框的,所以就不想压缩。谢谢啊。现在压缩下载了,受教了
费振龙
费振龙
@师傅被妖怪抓走了 回复@师傅被妖怪抓走了 : 你自己定义就好了,想让他生成什么就生成什么,在文件名称前加路径
师傅被妖怪抓走了
师傅被妖怪抓走了
请问test.zip这个名字是怎么来的,不是你上面拼接那个吧
返回顶部
顶部