怎麼生成帶參數二維碼我就不說了接口本身看 html
有人會說生成了帶參數二維碼都已經生成了爲何還要保存到本地呢 具體需求是這樣的 要將生成的帶參數二維碼打包發給圖片製做商製做 一個個另存爲浪費時間 安全
別的不說了說重點微信
public static void SaveQrCodeImage(string strUrl) { try { System.Net.Http.HttpClient client = new System.Net.Http.HttpClient(); Byte[] bytes = client.GetByteArrayAsync(strUrl).Result; // return new MemoryStream(bytes); byte[] tt = bytes; //StreamToBytes(stream);//將數據流轉爲byte[] //在文件名前面加上時間,以防重名 string imgName = DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg"; //文件存儲相對於當前應用目錄的虛擬目錄 string path = "/Uploads/imageminiqrcode/"; //獲取相對於應用的基目錄,建立目錄 string imgPath = System.Web.HttpContext.Current.Server.MapPath(path); //經過此對象獲取文件名 if (!System.IO.Directory.Exists(imgPath)) //若是文件夾不存在則建立 { System.IO.Directory.CreateDirectory(imgPath); } System.IO.File.WriteAllBytes(HttpContext.Current.Server.MapPath(path + imgName), tt);//講byte[]存儲爲圖片 } catch { throw new Exception("獲取二維碼圖片失敗!"); } }
數據流轉換爲byte[]ui
///將數據流轉爲byte[] public static byte[] StreamToBytes(Stream stream) { List<byte> bytes = new List<byte>(); int temp = stream.ReadByte(); while (temp != -1) { bytes.Add((byte)temp); temp = stream.ReadByte(); } return bytes.ToArray(); }
使用方法spa
protected void Page_Load(object sender, EventArgs e) {
//"https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQEE8jwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyMVFYY0pjbl84TVQxMDAwMDAwN2MAAgSytOxYAwQAAAAA"
SaveQrCodeImage("https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQEE8jwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyMVFYY0pjbl84TVQxMDAwMDAwN2MAAgSytOxYAwQAAAAA");
}
效果圖code
固然仍是要吐槽下微信給的帶參數二維碼機制可能考慮安全問題 致使弄個字節流本身讀寫二維碼不太明智 全當複習複習了(*^__^*) 嘻嘻……htm
歡迎園友吐槽...對象