小程式碼分享及檔案流轉換
需求:使用者點生成二維碼,然後生成小程式二維碼,然後下個使用者掃一下成為被掃者的下級。
難點:圖片檔案流流的轉換(新建檔案,寫入檔案流,其實就是一堆亂碼)
// 獲得小程式分享二維碼
public function shares(){
$appId = 'wx0f1aa594555ac1b278f';
$secret = 'ed495f43312b53eb69b844f391d2ff33a05';
$code = input('code');
$weChat = new WeChat($appId, $secret);
// 獲得openid
$openId = $weChat->getOpenId($code);
$openId = isset($openId['openid']) ? $openId['openid'] : '';
// 如果code能換回openid
if ($openId) {
// 查詢該使用者有沒有點過生成小程式碼
$qrcode = db('user')
->field('qrcode')
->where('openid',$openId )
->find();
// 如果沒有生成過小程式碼
if($qrcode['qrcode']){
return jsonReturn(CommonModel::CODE_200,CommonModel::MSG_200,$qrcode);
}else{
// 獲得access_key
$accessTokenOpenid = $weChat->getAccessToken($code);
$accessToken = $accessTokenOpenid['access_token'];
// 獲得小程式嗎,這個返回的是陣列
$info = $weChat->getWxacode($accessToken,'pages/index?query='.$openId);
$info = $info[1];
//儲存地址
$imgDir = 'img/qrcode/';
//要生成的新圖片名字
$filename = md5(time().mt_rand(10, 99)).".png";
// 組成路徑加名稱
$newFilePath = $imgDir.$filename;
$res = file_put_contents($newFilePath,$info);
$qiniuUrl = CommonModel::upload($newFilePath);
if($res){
db('user')
->where('openid',$openId)
->update(['qrcode'=>$qiniuUrl]);
}
return jsonReturn(CommonModel::CODE_200,CommonModel::MSG_200,$qiniuUrl);
}
}else{
return jsonReturn(CommonModel::CODE_404, CommonModel::MSG_404);
}
}
相關推薦
小程式碼分享及檔案流轉換
需求:使用者點生成二維碼,然後生成小程式二維碼,然後下個使用者掃一下成為被掃者的下級。 難點:圖片檔案流流的轉換(新建檔案,寫入檔案流,其實就是一堆亂碼) // 獲得小程式分享二維碼
微信小程式分享及使用者資訊授權等介面能力的調整通知
以下來自2018年9月30號的微信小程式官方文件調整說明: 針對近期部分小程式介面能力使用不合理的情況,微信公眾平臺將對下列能力進行調整。開發者可在最新版開發者工具內,選擇最新基礎庫版本體驗。調整方案具體如下,請開發者儘快完成適配。 1、分享監聽介面 10月10日起新提交的版本,使用者從
關於input type="file"表單提交及檔案流的動態賦值
我們都知道,html5中有個input type=file元素。用該元素可以實現頁面上傳檔案的功能 。 頁面上寫一個input,然後選擇一個檔案,列印這個input物件 $('.up-file').on('change',function(e){ //上傳 co
檔案流轉換為base64碼 和 base64碼轉換為檔案流
package test.com.cs;import com.cs.Base64Convert;import junit.framework.TestCase;import java.io.FileNotFoundException;import java.io.IOExc
C++中string類及檔案流類(ofstream,ifstream)的基本操作---按行讀取文件
先說明一個問題:java構建物件只能使用new的方法,而C++則不然。 下面程式碼實現讀取test.txt檔案中的內容並顯示,同時將某一個字串輸入到檔案test1.txt中。 函式getline(ifstream& param1, string& param
使用Servlet從微信小程式請求的檔案流獲取檔案內容和表單資料
說明:專案中用到微信小程式上傳檔案,發現檔案放在流中,Struts中request經過封裝無法獲取到此檔案流,嘗試用servlet解決package com.web; import java.io.File; import java.io.FileOutputStream;
使用jaxb 轉換bo物件及XML檔案流
bo物件: 注: jaxb只會序列化 public 的方法 ,若屬性宣告為public,且宣告 @XmlElement(name = "name") ,則需要在該屬性get方法上宣告@XmlTransient,表示不將get方法序列化成xml元素,否則會報重複屬性序列化。或
C語言程式碼分享之字串匹配及檔案讀寫結合
這個程式碼功能是:有一個密碼驗證功能(這裡沒有做回顯操作,即用*代替輸入的內容),驗證通過後從執行的引數個數來判定要輸出的內容,如果引數是程式本身,則輸出文本里面的命令內容,如果引數帶了,那麼則與文字內容匹配,如果匹配成功,則執行這個命令,如果不成功則輸出沒有找到該命令。
最全面的Java字節byte操作,處理Java基本數據的轉換及進制轉換操作工具,流媒體及java底層開發項目常用工具類
進制 string 常用工具類 cat i++ logs 指定位置 tput off 前言:用於處理Java基本數據的轉換及進制轉換操作工具 一、實現功能 1、int預byte互轉 2、int與byte[]互轉 3、short與byte互轉 4、short與byte[]互轉
vue + axios 通過Blob 轉換excel檔案流 下載亂碼問題
首先看下我們接收到的請求: 特別注意:responseType: 'blob' axios({ method: 'GET', url: '/api', params: params, respons
檔案及資料流
System.IO名稱空間 System.IO名稱空間包含允許在資料流和檔案上進行同步和非同步讀取及寫入的型別 檔案和流的區別: 檔案是一些具有永久儲存及特定順序的位元組組成的一個有序的,具有名稱的集合. 流提供一種向後備儲存寫入位元組和從後備儲存讀取位元組的方式.後備儲存可以為多種儲存媒
C++中tan、atan、sin、cos等三角函式用法的程式碼演示及結果,注意角度和弧度的轉換!
進行相機座標系相關公式推導時,經常碰到三角函式的使用。時間一長就生疏,碰到問題再查,很費時間。所以就總結一下,也希望能幫到更多的人。下面就通過簡練的程式碼,把常用的cos、sin、tan、atan等通過程式碼及結果都說清楚。注意弧度和角度的區別!!! 1、程式碼 #include <
WAV檔案資料解析(4.10更新一點小程式碼)
作為一個初級的演算法和聲紋的工程師,寫個blog記錄一下自己近期所接觸的知識點,作為日後參考和複習用 首先都是文字,後期有空再加圖片和改格式,很多內容都是通過被人的blog參考和整理得來。 日後慢慢的更新聲紋識別SRE的演算法以及機器學習的演算法和資料分析的實踐 更新:最近專案測了個模型,
微信小程式採坑記錄 ------- canvas 生成分享到朋友圈帶小程式碼的圖片
最近做了一個問卷類的小程式,其中的結果頁想讓使用者進行朋友圈分享轉發,網上搜索資料,得出解決思路,用 canvas 將頁面繪製生成圖片,然後儲存到手機相簿,最終效果如下: 在這裡我只寫頁面裡關於 canvas 生成圖片並進行儲存這個流程的相關程式碼,並且會
分享知識-快樂自己:Struts2檔案上傳及檔案下載
1)Struts2單檔案上傳 action:類檔案 package com.mlq.action; import com.opensymphony.xwork2.ActionSupport; import org.apache.commons.io.FileUtils; imp
WebApi接收微信小程式上傳的圖片(二進位制檔案流)並儲存在伺服器指定路徑
找了好多天都沒找到小程式批量上傳圖片的方法,然後我現在的邏輯是: 取到上傳圖片的集合,迴圈呼叫小程式wx.UploadFile方法,依次上傳 後端取到檔案之後生成唯一MD5碼(相同的檔案生成的MD5碼是唯一的),然後取前兩位後兩位建立資料夾,儲存圖片前判斷下圖片是否存在。(
fstream 中判斷是否成功開啟檔案 | C++中檔案流(fstream)的使用方法及示例
ifstream fin("filename"); if (!fin) { cout << "fail to open the file" <<endl; return -1;//或者丟擲異常。 } else { cout << "open
C# Stream 和 byte[] 之間的轉換(檔案流的應用)
一. 二進位制轉換成圖片 MemoryStream ms = new MemoryStream(bytes); ms.Position = 0; Image img = Image.FromStream(ms); ms.Close(); this.pictureBox1.Image 二. C#
C語言小遊戲程式碼分享——黑白棋。喜歡的朋友點贊關注並轉發!
C/C++企業實戰級課程資源(素材+原始碼+視訊)、編譯大禮包免費分享,需要的加學習群892643663。 #include "graphics.h" /*圖形系統標頭檔案*/ #define LEFT 0x4b00 /*游標左鍵值*/ #define RIGHT 0x4d00 /*
Python有趣的微信小程式程式碼分享
Python有趣的微信小程式程式碼分享 1:列印心形 print('\n'.join([''.join([('Love'[(x-y)%4]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in