图片的URL上传至阿里云OSS操作(微信小程序二维码返回的二进制上传到OSS)
当我们从网络中获取一个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)的更多相关文章
- PHP生成小程序二维码合成图片生成文字
这部分代码是写在项目上的代码,THINKPHP3.1如果迁移到其他的地方应该要稍稍改动一下以适合自己的项目 function get_bbox($text,$fsize,$ffile){ return ...
- iOS 根据url生成二维码贴到底图上
根据url 生成指定尺寸的二维码图片 UIImage * createBinaryCodeImg(const char * url ,CGFloat size) { //create binary c ...
- 基于小程序云Serverless开发微信小程序
本文主要以使用小程序云Serverless服务开发一个记事本微信小程序为例介绍如何使用小程序云Serverless开发微信小程序.记事本小程序的开发涉及到云函数调用.云数据库存储.图片存储等功能,较好 ...
- 微信小程序开发之 下拉刷新,上拉加载更多
本文记载了如何在微信小程序里面实现下拉刷新,上拉加载更多 先开看一下界面 大致如此的界面吧. 这个Demo使用了微信的几个Api和事件,我先列出来. 1.wx.request (获取远程服务器的数据, ...
- 微信小程序--地图组件与api-模拟器上返回的scale 与真机上不同--bindregionchange触发图标一直闪现问题
场景:根据地理定位获取不同地区的充电桩位置,要求 1.平移的时候,跟随坐标变化展示不同区域的坐标点信息 2.不同的缩放等级,14以下,展示聚合点数据,14以上,展示真正的站点信息: 3.点击聚合点的时 ...
- 微信小程序(14)--上传图片公用组件(父子传参)
这周整理了一下做微信小程序页面时遇到的一些问题,先说说常见的上传图片吧. 上传图片公用组件 首先要了解的是父子传参. 1.A组件为父组件,B组件为子组件,以下是A组件向B组件传参: 在A组件的json ...
- 微信小程序电商实战-商品详情(上)
先看一下今天要实现的小程序商品详情页吧! 商品详情.gif 本期我们要实现小程序商品详情页的头部标题.头部轮播.商品详情浮动按钮和商品内页布局. 一.设置头部标题 如上图所示,头部标题是商品详情 ...
- 微信小程序的页面跳转==编程式导航传参 和 标签的方法传参==以及如何过去传递过来的参数
小程序导航传参接收传递过来的参数 在onload中 实例
- [微信小程序] 当动画(animation)遇上延时执行函数(setTimeout)出现的问题
小程序中当动画animation遇上setTimeout函数内部使用this.setData函数,通常情况下会出现报错.本文先告诉解决方法,后分析报错原因 1.解决方法: 在 setTimeout() ...
随机推荐
- 【转】winform回车变为tab
源地址:http://www.cnblogs.com/wohexiaocai/p/4302200.html
- Axios 使用说明
get请求: on_sum: function () { axios.get('http://127.0.0.1:8000/test/' ).then(response=>{ alert('ok ...
- 开启和查看mysql的bin-log日志
[root@VM_0_7_centos data]# vim /etc/my.cnf [root@VM_0_7_centos data]# vim /etc/my.cnf [root@VM_0_7_c ...
- mysql双机互相备份
互备/***************************************master服务器**************************************/vi my.cnf[ ...
- linux下Tomcat+OpenSSL配置单向&双向认证(自制证书)
背景 由于ios将在2017年1月1日起强制实施ATS安全策略,所有通讯必须使用https传输,本文只针对自制证书,但目前尚不确定自制证书是否能通过appstore审核. 1.必须支持传输层安全(TL ...
- 如何让ie8地址栏下拉框里不显示历史记录和收藏夹
打开浏览器,点击IE浏览器上方工具——Internet选项——内容——自动完成的设置——地址栏里面的勾勾去掉,浏览历史记录和收藏夹里面的东西就自动没有了
- 为Arch Linux添加鼠标支持(gpm)
gpm的安装 在Arch Linux中安装gpm $ pacman -S gpm 如果你正在使用触控板,需要安装一下插件 $ pacman -S gpm xf86-input-synaptics 需要 ...
- Java实现二维码生成的方法
1.支持QRcode.ZXing 二维码生成.解析: package com.thinkgem.jeesite.test; import com.google.zxing.BarcodeFormat; ...
- CentOS 7 系统区域和键盘设置
系统区域设置包括语言.键盘布局等,可以通过修改/etc/locale.conf配置文件或使用localectl实用程序来进行设置,一般在安装时设置为默认选择(英文.美式键盘)即可 修改配置文件 [ro ...
- Android 使用URL访问网络资源
1.介绍 2.使用方法 3.java后台代码 package com.lucky.test51url; import android.annotation.SuppressLint; import a ...