- 浏览: 719992 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
18335864773:
看了楼主写的用jxl生成excel。有地方用到了流,还特别强调 ...
jxl导出excel文件简单示例 -
shaoshou111:
查看Apache的并发请求数及其TCP连接状态netstat ...
Linux查看连接数,并发数 -
gengjunshi:
非常感谢哈,刚好在学webservice编程,很有用呢。
JAX-WS开发webservice示例详解 -
zcgewu:
encrypt2()和encrypt()有什么区别
JAVA实现AES加密 -
java爱好者92:
ireport的操作还是相对比较复杂的,帆软报表会相对简单一点 ...
iReport报表开发中常见的问题
设计思路:
通过业务表中照片编号获得需要下载的照片列表
把用户session、照片列表与zip名称 传入照片下载公共方法中。获得下载路径。
下载地址设计:
/photozip/时间(yyyyMMdd)/HHmmss_5位随机码zipType
业务调用例子:
通过业务表中照片编号获得需要下载的照片列表
把用户session、照片列表与zip名称 传入照片下载公共方法中。获得下载路径。
下载地址设计:
/photozip/时间(yyyyMMdd)/HHmmss_5位随机码zipType
HOME_PATH=D\:\\soft\\Tomcat6\\virtualdir\\photo DOWNPHOTO_PATH=/photozip DOWN_TYPE_ZIP=/zip/
package com.jsict.httptransfer.comm; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.net.MalformedURLException; import java.util.Date; import java.util.List; import org.apache.commons.io.FileUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipOutputStream; import com.jshx.ictjs.httptransfer.utils.DateTools; import com.jsict.ictmap.common.PropertiesManager; import com.jsict.ictmap.util.StringUtil; import com.jsict.ictmapmodule.custom.entiry.AttachmentBean; /** * 打包下载图片 * @author duanpf */ public class DownPhotoUtil { protected final Log logger = LogFactory.getLog(getClass()); public String zipPath = ""; //压缩路径+文件 public String zipFile = ""; //压缩路径 public String downLoad = ""; //下载路径 /** * 下载图片 * @param list AttachmentBeanList * @param zipType .zip * @return 图片下载地址 * @throws Exception */ public String downPhoto(List list,String zipType) throws IOException{ if(StringUtil.isEmpty(zipType)){ zipType = ".zip"; } String photoPath = PropertiesManager.getProperty("common.properties", "HOME_PATH"); String zipTitle = createFile(photoPath); for (int i = 0; i < list.size(); i++) { AttachmentBean photo = (AttachmentBean) list.get(i); String path = photoPath + photo.getFilePath(); logger.info("=============path["+i+"]="+path); copyFileToLocal(path, zipPath + "/" + photo.getName()); } // 判断目录是否存在,不存在创建 logger.info("压缩包存放路径:" + zipPath + "\n"); String downPhotoPath = zipFile + "/" + zipTitle + zipType; //压缩文件路径 zip(zipPath, downPhotoPath); //deleteFile(zipPath); return downLoad + "/" + zipTitle + zipType; } /** * 保存文件 * @param userSession 用户session * @param photoPath 图片绝对路径 * @return * @throws IOException */ public String createFile(String photoPath) throws IOException{ String savePath = ""; //年月日 String saveDate=DateTools.parseDate2Str(new Date(), "yyyyMMdd"); savePath = savePath + "/" + saveDate; String fileDate=DateTools.parseDate2Str(new Date(), "HHmmss"); int ronNum = (int)(Math.random()*100000); downLoad = PropertiesManager.getProperty("common.properties", "DOWNPHOTO_PATH") +savePath; zipFile = photoPath + downLoad; zipPath = zipFile + "/" + (fileDate + "_" + ronNum); File file = new File(zipPath); if (!file.exists()) { file.mkdirs(); } return fileDate + "_" + ronNum; } /** * * 方法说明:删除指定文件路径下的文件 * * @param targetPath * :目标文件路径 * @return 返回值类型 * @Exception 异常对象 * */ public void deleteFile(String targetPath) throws IOException { File targetFile = new File(targetPath); if (targetFile.isDirectory()) { FileUtils.deleteDirectory(targetFile); } else if (targetFile.isFile()) { targetFile.delete(); } } /** * 把inputFileName下的文件压缩到zipFileName对应路径 * * @param inputFileName * 需压缩的文件(夹)路径 * @param zipFileName * 压缩后生成压缩文件名 * @throws Exception */ public void zip(String inputFileName, String zipFileName) throws IOException { zip(zipFileName, new File(inputFileName)); } public void zip(String zipFileName, File inputFile) throws IOException { ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName)); zip(out, inputFile, ""); out.close(); } public void zip(ZipOutputStream out, File file, String base) throws IOException { if (file.isDirectory()) { File[] fl = file.listFiles(); out.putNextEntry(new ZipEntry(base + "/")); out.setEncoding("gbk"); base = base.length() == 0 ? "" : base + "/"; for (int i = 0; i < fl.length; i++) { zip(out, fl[i], base + fl[i].getName()); } } else { out.putNextEntry(new ZipEntry(base)); out.setEncoding("gbk"); FileInputStream in = new FileInputStream(file); int b; while ((b = in.read()) != -1) { out.write(b); } in.close(); } } /** * 将文件拷到clientPath指定文件夹下 * * @param fileFrom * 远程文件路径 * @param fileTo * 本地路径 * @return */ public void copyFileToLocal(String fileFrom, String fileTo) { try { if (fileTo.indexOf('.')<0){ //不包含 String[] fileFromSplit = fileFrom.split("\\."); String fileFromSplitStr = fileFromSplit[fileFromSplit.length-1]; fileTo=fileTo+"."+fileFromSplitStr; } FileInputStream in = new FileInputStream(fileFrom); FileOutputStream out = new FileOutputStream(fileTo); byte[] bt = new byte[1024]; int count; while ((count = in.read(bt)) > 0) { out.write(bt, 0, count); } in.close(); out.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
业务调用例子:
public String downPhoto()throws Exception { List<AttachmentBean> list = null; String zipType = ".zip"; DownPhotoUtil dp= new DownPhotoUtil(); try { downPhotoPath = "图片下载失败"; if (list != null && list.size() > 0) { downPhotoPath = dp.downPhoto(list, zipType); } logger.info("压缩包下载路径:" + downPhotoPath); } catch (Exception e) { downPhotoPath = "图片下载失败"; } return "downPhoto"; }
发表评论
-
nginx反向代理后,打开页面很慢
2020-05-26 11:26 4862nginx反向代理后,打开页面很慢 在做前后端完全分离的 ... -
【国】前后端国际化的问题
2020-04-23 17:21 862前端有国际化,但是后端service无法使用国际化。 原 ... -
父页面与子页面的相互调用
2017-12-14 14:51 2454一、在页面里用 open ... -
(转)Java jacob调用打印机打印word文档
2017-12-01 17:33 3612折腾了好久,最终决定由用一个第三方的,找到了jacob,还不 ... -
Spring国际化动态配置
2017-07-11 17:31 1728代码下载 http://pan.baidu.com/s/1 ... -
谷歌浏览器如何支持 object
2017-01-23 11:01 1848把附件中的文件拖入谷歌浏览器中地址栏(需要在扩展程序 中打 ... -
BIRT参数设置详解
2016-05-18 15:15 4270在使用birt报表的时候感 ... -
gson的使用分享
2016-01-15 13:48 1735一、 最基本的对象与JSON相互转换 1、 定义java对象 ... -
(转)FindBugs规则整理
2015-12-18 10:40 6421FindBugs是基于Bug Patterns ... -
利用Data URL(data:image/jpg;base64,)将小图片生成数据流形式
2015-11-20 18:09 2178先看一段代码: <img src="da ... -
Gson注解和GsonBuilder
2015-04-07 11:49 1605//注意这里的Gson的构建方式为GsonBuilder, ... -
Spring AOP 的@Aspect (转)
2015-03-03 15:50 855从Spring 2.0开始,可以使用基于schema及@As ... -
Hibernate一对多和多对一关系详解 (转载)
2014-07-10 17:00 1783双向一对多关系,一是关系维护端(owner side),多是关 ... -
Struts2的Action如何交给spring来管理
2014-07-10 11:35 822我的Action是 <package name=&qu ... -
javax.xml.ws.soap.SOAPFaultException: Cannot create a secure XMLInputFactory
2014-06-04 20:26 1691javax.xml.ws.soap.SOAPFaultExce ... -
html静态页面中获取请求参数和参数值
2014-05-09 16:50 2248通过Location对象的search属性,可以获得从URL中 ... -
jsp 文体编辑器
2014-04-29 11:33 903首先,需要加载fck的jar包 在resource中加入fck ... -
jquery传参数
2014-03-20 10:21 570var param =$("#myform" ... -
获得请求IP
2013-12-06 14:18 1061在AbstractInterceptor中 Action ... -
s:select 用法
2013-10-23 14:53 5124在jsp页面 <s:select lis ...
相关推荐
820张网页背景图片打包下载
本站收集整理漂亮的粉红色ppt背景图片打包下载,共10张
48张3D小人高清图片打包下载 适合做网页素材或者PPT素材
适用场景:一键将页面上的全部图片打包下载,纯前端实现。 使用插件:jszip.js、filesaver.js、jquery 下载后直接用chrome、firefox、IE11+打开即可查看效果,仅供学习参考。
2013端午节相关素材图片打包下载
网吧装修图片网吧装修图片网吧装修图片打包下载
十张可爱卡通幻灯片背景图片打包下载; 关键词:儿童,小朋友,插画,可爱卡通幻灯片背景图片,.PPT格式;
30张漂亮的绿色PPT背景图片打包下载,精选整理,值得收藏
蓝色PPT背景,11张PPT图片打包下载
纽扣 女孩 素材 图片 打包 下载,可供直接使用
情人节精美祝福图片打包下载
jquery把图片文件打包成ZIP文件提供下载,不用再后台生成储存
多个png图片供用户使用,用户可以选择自己喜欢的
本站收集整理12张有关清明节的幻灯片背景图片,无水印,可以作为清明节的ppt模板设计素材只用。感谢下载。
63张3D小人精选素材,3D小人商务图片,3D小人素材下载。
各种各样的好看的按钮图标,1000个网页图标打包下载
黑板、书籍、博士帽、答卷、笔墨、书简图片,6张精美适用教育教学课件制作的ppt背景图片打包下载。
ICO图标打包下载 RAR文件格式,解压即可~
ppt橙色背景图片,共11张打包下载