.Net MVC生成二維碼並前端展示


簡介:

二維碼又稱二維條碼,常見的二維碼為QR Code,QR全稱Quick Response,是一個近幾年來移動設備上超流行的一種編碼方式,它比傳統的Bar Code條形碼能存更多的信息,也能表示更多的數據類型。

步驟說明:

第一步要做的就是添加對 ThoughtWorks.QRCode 的引用。添加引用步驟:右鍵引用——》管理 NuGet 程序包——》瀏覽中搜索 QRCode ——》安裝 ThoughtWorks.QRCode 程序包

下文為Controller控制器的后端代碼,輸入所需展示的內容並返回一個base64的字符串用於前端內容展示...

 1 [HttpPost]
 2         /// <summary> 
 3         /// 生成二維碼 
 4         /// </summary> 
 5         /// <param name="qrCodeContent">要編碼的內容</param> 
 6         /// <returns>返回二維碼base64用於前端展示</returns> 
 7         public string QRCodeEncoderUtil(string qrCodeContent)
 8         {
 9             QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
10             qrCodeEncoder.QRCodeScale = 5;
11             qrCodeEncoder.QRCodeVersion = 0;
12             Bitmap img = qrCodeEncoder.Encode(qrCodeContent, Encoding.UTF8);//指定utf-8編碼, 支持中文 
13             string strbaser64 = "";
14             try
15             {
16                 using (MemoryStream ms = new MemoryStream())
17                 {
18                     img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
19                     byte[] arr = new byte[ms.Length];
20                     ms.Position = 0;
21                     ms.Read(arr, 0, (int)ms.Length);
22                     ms.Close();
23                     strbaser64 = Convert.ToBase64String(arr);
24                 }
25                 return strbaser64;
26             }
27             catch (Exception)
28             {
29                 throw new Exception("Something wrong during convert!");
30             }
31         }
Controller內容

下文為Web視圖的前端代碼,因只是一個功能示例,未對樣式進行調整...

 1 <script src="~/Scripts/jquery-1.10.2.min.js"></script>
 2 
 3 <div>
 4     <div><span>生成內容:</span><input placeholder="請輸入需要生成的文字描述..." id="EwmText" /></div>
 5     <button onclick="GetErWeiMa()">
 6         生成二維碼
 7     </button>
 8     <img id="ErWeiMaImg" style="width:120px;height:120px">
 9 </div>
10 
11 <script>
12     function GetErWeiMa() {
13         $.post("/Index/QRCodeEncoderUtil?qrCodeContent=" + encodeURIComponent($("#EwmText").val()), function (data) {
14             if (data != "") {
15                 $("#ErWeiMaImg").attr("src", "data:image/jgp;base64," + data)
16             }
17             else {
18                 alert("生成失敗");
19             }
20         })
21     }
22 </script>
View代碼

如果您已經按照要求完成代碼,則會出現下圖效果,輸入所需生成內容,前端會展示對應的二維碼。注意input輸入的內容需要encodeURIComponent,否則會截斷特殊字符...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM