public void queryHbaseDataByCondition(HttpServletRequest request, HttpServletResponse response) throws Exception { String rootPath = request.getRealPath("/"); FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL); ColumnPrefixFilter filter = new ColumnPrefixFilter(Bytes.toBytes("supplier")); // 前缀为 my-prefix filterList.addFilter(filter); List<String> stringList = getRowkeyListByFilterNew(filterList, tableName, "1509437597618", "1510293754089", ""); String name = "图片压缩包下载"; String fileName = name + System.currentTimeMillis(); String zipFileName = fileName + ".zip"; File zipFile = null; String path = rootPath + "temp_download"; FileOutputStream zipFos = null; //调用工具类获取图片 byte[] data = new byte[0]; FileOutputStream outStream = null; try { //创建文件 File file = new File(rootPath + "temp_download"); //判断文件是否存在,如果不存在,则创建此文件夹 if (!file.exists()) { file.mkdir(); } data =stringList.get(11).getBytes(); //new一个文件对象用来保存图片,默认保存当前工程根目录 if (data != null) { File imageFile = new File(path + File.separator + fileName + ".jpg"); //创建输出流 outStream = new FileOutputStream(imageFile); //写入数据 outStream.write(data); //关闭输出流 outStream.close(); } } catch (IOException e) { e.printStackTrace(); } finally { outStream.close(); } try { //获取创建好的图片文件 File imageFile = new File(path + "/" + fileName + ".jpg"); // 打成压缩包 zipFile = new File(path + "/" + zipFileName); zipFos = new FileOutputStream(zipFile); ArchiveOutputStream archOut = new ArchiveStreamFactory().createArchiveOutputStream(ArchiveStreamFactory.ZIP, zipFos); if (archOut instanceof ZipArchiveOutputStream) { ZipArchiveOutputStream zos = (ZipArchiveOutputStream) archOut; ZipArchiveEntry zipEntry = new ZipArchiveEntry(imageFile, imageFile.getName()); zos.putArchiveEntry(zipEntry); zos.write(FileUtils.readFileToByteArray(imageFile)); zos.closeArchiveEntry(); zos.flush(); zos.close(); } // 压缩完删除txt文件 if (imageFile.exists()) { imageFile.delete(); } // 输出到客户端 OutputStream out = null; out = response.getOutputStream(); response.reset(); response.setHeader("Content-Disposition", "attachment;filename=" + new String(zipFileName.getBytes("GB2312"), "ISO-8859-1")); response.setContentType("application/octet-stream; charset=utf-8"); response.setCharacterEncoding("UTF-8"); out.write(FileUtils.readFileToByteArray(zipFile)); out.flush(); out.close(); // 输出客户端结束后,删除压缩包 if (zipFile.exists()) { zipFile.delete(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ArchiveException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { zipFos.close(); } }
java图片压缩导出
最新推荐文章于 2024-06-22 06:00:00 发布