将sqlserver中的图片打成zip包
发布时间:2020-12-12 14:50:52 所属栏目:MsSql教程 来源:网络整理
导读://打包。。 public static void ?zipTest(){ //获取图片集合,这里用ThPhoto实体保存图片信息 ListTbPhoto list = d.returnAllPhoto(); System.out.println(list.size() ); try { FileOutputStream f = new FileOutputStream("d:图片.zip"); ZipOutputStre
//打包。。 public static void ?zipTest(){ //获取图片集合,这里用ThPhoto实体保存图片信息 List<TbPhoto> list = d.returnAllPhoto(); System.out.println(list.size() );try { FileOutputStream f = new FileOutputStream("d:图片.zip"); ZipOutputStream out = new ZipOutputStream(new DataOutputStream(f)); int i = 0; for (TbPhoto photo : list) { // System.out.println("开始压缩图片。。。"); //photo.getContent就是从数据库中读出来就是图片字节数组。byte[] ByteArrayInputStream inStream = new ByteArrayInputStream(photo .getContent()); DataInputStream in = new DataInputStream(inStream); out.putNextEntry(new ZipEntry(i + "." + getTypeByStream(photo.getContent()))); int c; while ((c = in.read()) != -1) out.write(c); in.close(); i++; } out.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 将此字节数组的头4位截取,然后转成16进制字符串 * @param src * @return */ public static String bytesToHexString(byte[] src) { StringBuilder stringBuilder = new StringBuilder(); if (src == null || src.length < 4) { return null; } for (int i = 0; i < 4; i++) { int v = src[i] & 0xFF; String hv = Integer.toHexString(v); if (hv.length() < 2) { stringBuilder.append(0); } stringBuilder.append(hv); } return stringBuilder.toString(); } /** * 获取图片类型 * @param b * @return */ public static String getTypeByStream(byte[] b) { String type = bytesToHexString(b).toUpperCase(); if (type.contains("FFD8FF")) { return "jpg"; } else if (type.contains("89504E47")) { return "png"; } else if (type.contains("47494638")) { return "gif"; } else if (type.contains("49492A00")) { return "tif"; } else if (type.contains("424D")) { return "bmp"; } return type; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |