速度,要速度啊,赶紧回复!
|
|
10分 |
|
关键是有几千上万张的图片啊,就算100个文件分成10个压缩包,怎么一次性下载这10个压缩包呢? |
|
10分 |
前台控制下吧。每隔一段时间请求一下就好了 |
10分 |
10个压缩包肯定不是一次性发过去的。 |
10分 |
可以先把下载下来,然后写入压缩包。
|
5分 |
也就是希望能做到边打包边下载的效果,有没有人知道这种情况怎么解决呀!
这个是关键 你想一边打包一边发送给客户。这个估计不好实现吧 发送给客户的文件都是提前JAVA读取的 你中途再往里面写东西 可能是不行的 建议你可以分2个功能按钮 一个是开始打包,然后弹出窗口后台正在打包,大概要多长时间,这个需要调整SESSION 如果要0-3个小时还可以接受 扫描需要打包的文件的总大小/每秒打包的速度 最后打包完成之后提示可以下载了 将下载链接写入数据库也可以 记录这个人操作了操作过 |
5分 |
这种你只有做延迟,让用户感觉程序在运行。
1、ajax到后台去压缩,弹出层灰色,正在压缩,请稍候….. 2、成功后返回客户端再去下载。 当然你也可以用自己做一个线程池,压缩。然后在去访问。 |
已经解决,变打包边下载!
|
|
采用数据流方式。后台打包的时候将输出流定向到浏览器
|
|
楼主怎么实现边打包边下载啊,,求大神指导啊,,,,急用
|
|
边打包边下载啦,不用创建临时文件
ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(response.getOutputStream())); byte[] buffer = new byte[8192]; int len = 0; for (ArrayList<String> rList : list) { File file = new File(rList.get(4)); ZipEntry ze = new ZipEntry(rList.get(0)+"_"+rList.get(2)+"_"+rList.get(3)+"_"+("".equals(rList.get(1))?"未知车牌号":rList.get(1))+"_"+DateUtil.formatByPattern("HHmmssSSS")+suffix); zos.putNextEntry(ze); zos.setEncoding("gbk"); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); while ((len = bis.read(buffer))!=-1) { zos.write(buffer, 0, len); } bis.close(); zos.closeEntry(); } zos.close(); |
|
求已解决问题的源码???
|