当我们从网络中获取一个URL的图片我们要存储到本地或者是私有的云时,我们可以这样操作  把url中的图片文件下载到本地(或者上传到私有云中) 

public String uploadUrlToOss(String url) {
try{
URL urls = new URL(url);
HttpURLConnection connection = (HttpURLConnection) urls.openConnection();
connection.addRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0");
connection.setConnectTimeout(10 * 1000);
connection.setReadTimeout(15 * 1000);
InputStream inputStream = connection.getInputStream();
//头像
File newFile = new File("headimgurl.png");
FileOutputStream os = new FileOutputStream(newFile);
byte[] buffer = new byte[81920];
int bytesRead = 0;
while((bytesRead = inputStream.read(buffer, 0, 81920)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.flush();
os.close();
String urlss = AliyunOSSUtil.upload(newFile);
newFile.delete();
return urlss;
}catch (Exception e){
log.error("根据Url 获取图片的file 然后上传OSS 异常error ={}",e);
return null;
}
}

微信小程序二维码返回的二进制上传到OSS

public ResultDTO getQrCode(ReqQrCodeDTO reqQrCodeDTO)  {
try {
//拼接URL
String access_token_url = WX_APPLET_GETAT+"?appid="+WX_APPLET_ID+"&secret="+WX_APPLET_KEY+"&grant_type=client_credential";
//使用Https请求微信API接口
String loginRet = HttpClientUtil.doGet(access_token_url);
JSONObject grantObj = new JSONObject(loginRet);
String errcode = grantObj.optString("errcode");
if (!StringUtils.isEmpty(errcode)){
log.error("login weixin error {}",loginRet);
}
String accessToken = grantObj.optString("access_token");
if (StringUtils.isEmpty(accessToken)){
log.error("bind weixin getOpenId error {}",loginRet);
}
/* 获取二维码的链接 */
String appletUrl = xxxx;
String param=appletUrl+"";
//String param="index";
Map<String, Object> params = new HashMap<>();
//params.put("access_token", "access_token");
params.put("path", param);
//params.put("page", appletUrl);
params.put("width", 250);
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
HttpPost httpPost = new HttpPost(WX_APPLET_GETQR+"?access_token="+accessToken);
httpPost.addHeader(HTTP.CONTENT_TYPE, "application/json");
String body = JSON.toJSONString(params);
StringEntity entity;
entity = new StringEntity(body);
entity.setContentType("image/png");
httpPost.setEntity(entity);
HttpResponse response;
response = httpClient.execute(httpPost);
InputStream inputStream = response.getEntity().getContent();
//二维码
File newFile = new File("qrcode.png");
FileOutputStream os = new FileOutputStream(newFile);
byte[] buffer = new byte[81920];
int bytesRead = 0;
while((bytesRead = inputStream.read(buffer, 0, 81920)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.flush();
os.close();
String urlss = AliyunOSSUtil.upload(newFile);
newFile.delete();
return ResultDTO.success(urlss);
}catch (Exception e){
log.error("获取二维码失败");
return ResultDTO.error();
}
}

图片的URL上传至阿里云OSS操作(微信小程序二维码返回的二进制上传到OSS)的更多相关文章

  1. PHP生成小程序二维码合成图片生成文字

    这部分代码是写在项目上的代码,THINKPHP3.1如果迁移到其他的地方应该要稍稍改动一下以适合自己的项目 function get_bbox($text,$fsize,$ffile){ return ...

  2. iOS 根据url生成二维码贴到底图上

    根据url 生成指定尺寸的二维码图片 UIImage * createBinaryCodeImg(const char * url ,CGFloat size) { //create binary c ...

  3. 基于小程序云Serverless开发微信小程序

    本文主要以使用小程序云Serverless服务开发一个记事本微信小程序为例介绍如何使用小程序云Serverless开发微信小程序.记事本小程序的开发涉及到云函数调用.云数据库存储.图片存储等功能,较好 ...

  4. 微信小程序开发之 下拉刷新,上拉加载更多

    本文记载了如何在微信小程序里面实现下拉刷新,上拉加载更多 先开看一下界面 大致如此的界面吧. 这个Demo使用了微信的几个Api和事件,我先列出来. 1.wx.request (获取远程服务器的数据, ...

  5. 微信小程序--地图组件与api-模拟器上返回的scale 与真机上不同--bindregionchange触发图标一直闪现问题

    场景:根据地理定位获取不同地区的充电桩位置,要求 1.平移的时候,跟随坐标变化展示不同区域的坐标点信息 2.不同的缩放等级,14以下,展示聚合点数据,14以上,展示真正的站点信息: 3.点击聚合点的时 ...

  6. 微信小程序(14)--上传图片公用组件(父子传参)

    这周整理了一下做微信小程序页面时遇到的一些问题,先说说常见的上传图片吧. 上传图片公用组件 首先要了解的是父子传参. 1.A组件为父组件,B组件为子组件,以下是A组件向B组件传参: 在A组件的json ...

  7. 微信小程序电商实战-商品详情(上)

    先看一下今天要实现的小程序商品详情页吧!   商品详情.gif 本期我们要实现小程序商品详情页的头部标题.头部轮播.商品详情浮动按钮和商品内页布局. 一.设置头部标题 如上图所示,头部标题是商品详情 ...

  8. 微信小程序的页面跳转==编程式导航传参 和 标签的方法传参==以及如何过去传递过来的参数

    小程序导航传参接收传递过来的参数 在onload中 实例

  9. [微信小程序] 当动画(animation)遇上延时执行函数(setTimeout)出现的问题

    小程序中当动画animation遇上setTimeout函数内部使用this.setData函数,通常情况下会出现报错.本文先告诉解决方法,后分析报错原因 1.解决方法: 在 setTimeout() ...

随机推荐

  1. 【bzoj3309】DZY Loves Math 莫比乌斯反演+线性筛

    Description 对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007)=1, f(1)=0. 给定正整数a,b, ...

  2. centos7 yum安装配置redis

    1.设置Redis的仓库地址 yum install epel-release 2.安装redis yum install redis 修改配置文件,监听所有的IP地址 vim /etc/redis. ...

  3. 关于C语言中printf函数“输出歧视”的问题

    目录 关于C语言中printf函数"输出歧视"的问题 问题描述 探索问题原因 另一种研究方法 问题结论 关于C语言中printf函数"输出歧视"的问题 问题描述 ...

  4. 【Linux】DNS服务-BIND基础配置

    1.BIND简介 现在使用最为广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain),最早有伯克利大学的一名学生编写,现在最新的版本是9,有ISC(Intern ...

  5. 网络编程之socket(TCP,UDP)

    socket层 tcp协议和udp协议 1)Socket服务器编程 主要包括下面的几步: 1.打开socket 2.绑定到一个地址和端口 3.侦听进来的连接 4.接受连接 5.读写数据 (2)Sock ...

  6. 教你搭建SpringSecurity3框架(附源码)

    源码下载地址:http://pan.baidu.com/s/1qWsgIg0 一.web.xml <?xml version="1.0" encoding="UTF ...

  7. 【算法笔记】B1005 继续(3n+1)猜想+sort()用法

    1005 继续(3n+1)猜想 (25 分) 卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程 ...

  8. http简单请求 -- 复杂请求

  9. filezilla绑定编辑器

    编辑  - >设置 ->文件格式关联 ->输入需要关联的编辑器的路径

  10. Phyton pymssql连接数据库

    import pymssql # conn = pymssql.connect(server='longdabing',user='sa',password='sasa',database='long ...