客户端打包下载七牛图片
来源:互联网 发布:php采集站 编辑:程序博客网 时间:2024/05/19 01:13
获取七牛图片URL,使用流来下载图片
一、工具类
package com.bayan.keke.util;import net.sf.json.JSONObject;import java.io.*;import java.net.URL;import java.net.URLConnection;import java.util.List;import java.util.Map;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream; /** * @param sourceUrls :待压缩的文件路径(Map:key="imgName",key="imgUrl") * @param zos :压缩后的输出流 * *@param fileName :压缩后文件的名称 * @return * */ public static boolean downloadToZip(List<Map<String,String>> sourceUrls,ZipOutputStream zos){ boolean flag = false; //输入 InputStream fis = null; BufferedInputStream bis = null; try { // 10K的数据缓冲 byte[] bufs = new byte[1024*10]; for(Map<String,String> sourceUrl : sourceUrls){ //fileName //String imgName= DateUtil.getStringByFormat(System.currentTimeMillis(),DateUtil.dateFormatYMDHMS); String imgName = sourceUrl.get("imgName"); // 构造URL URL url = new URL(sourceUrl.get("imgUrl")); // 打开连接 URLConnection con = url.openConnection(); //设置请求超时为5s con.setConnectTimeout(5 * 1000); //读取待压缩的文件并写进压缩包里 fis = con.getInputStream(); bis = new BufferedInputStream(fis, 1024*10); //创建ZIP实体,并添加进压缩包 ZipEntry zipEntry = new ZipEntry(imgName +".jpg"); zos.putNextEntry(zipEntry); int read = 0; while((read=bis.read(bufs, 0, 1024*10)) != -1){ zos.write(bufs,0,read); } } flag = true; } catch (FileNotFoundException e) { e.printStackTrace(); }catch (IOException e) { System.out.println("连接中断!"); e.printStackTrace(); }finally { //关闭流 try { if(null != bis) bis.close(); if(null != zos) zos.close(); if(null != fis) fis.close(); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } } return flag; }}
二、action
public void downTasksToZip(){ int taskResult = 0; try { String param = getRequest().getParameter("result"); if( param != null ){ taskResult = Integer.parseInt(param); } // 设置响应头,控制浏览器下载该文件 getResponse().setHeader("content-disposition","attachment;filename=" + URLEncoder.encode("图片.zip", "UTF-8")); // 创建输出流 OutputStream outputStream = getResponse().getOutputStream(); ZipOutputStream zos = new ZipOutputStream(outputStream); //获取所有图片url List<Map<String,String>> list = imageService.getImageUrl(taskResult); if( list.size() > 0){ boolean rst = DownLoadUtil.downloadToZip(list,zos); } // 请求结束log outputStream.close(); } catch (Exception e) { printSysErr(e, logger); } }
三、拼接图片url
使用时间戳防盗链,这里不再细说,具体可参考上一篇博客
/** *获取所有被推荐作业的url */ public List<Map<String,String>> getImageUrl(Integer type)throws Exception{ List<Map<String,String>> list = new ArrayList<>(); List<String > photoUrls = iamgeDao.getImageUrl(type); for(String s: photoUrls){ Map map = new HashMap(); String[] strings = s.split("/"); map.put("imgName",strings[strings.length -1]); map.put("imgUrl",Common.getUrlSign(s)); list.add(map); } return list; }
阅读全文
0 0
- 客户端打包下载七牛图片
- 七牛客户端上传图片文件
- android客户端下载图片的方法
- 七牛图片拼接
- 七牛图片瘦身
- 七牛图片上传
- java 批量下载图片,批量打包文件并下载
- java 批量下载图片,批量打包文件并下载
- ActiveX调用dll打包成cab供客户端下载
- Python脚本05 —— 从七牛服务器下载图片
- 微信企业号开发(七)---图片上传与下载
- php中怎样实现图片的打包下载
- 打包下载html中的内容及包含的图片
- 用jsp写 不落地式的图片打包下载
- java指定若干个网络图片,打包为zip下载
- 七牛图片服务插件
- HTML 七牛上传图片
- 七牛上传文件 图片
- android 获取各种路径大全
- Zookeeper 初体验之——JAVA API 初探
- 压力测试工具Siege详解
- ida动态调试
- 1031. 查验身份证(15)
- 客户端打包下载七牛图片
- MySQL备份与恢复
- Python --OS 模块
- 51nod 1521 一维战舰 模拟
- SSM项目从零开始到入门001.教程整体介绍
- 使用Eclipse远程调试及原理
- 前端框架vue.js系列(13):路由
- IPython 中显示目录内容文件名尾出现@等符号的意思
- radio 与 文字 齐平 (开发时遇到这个问题,参考网友给的解决方案解决了问题)