二维码越来越热火了,做电子商务网站,不做二维码,你就OUT了。
一、下载DLL文件(ThoughtWorks.QRCode.dll),并在项目中引用。点此下载
如果你还不知道什么是QRCode二维码,,请移步http://www.cnblogs.com/beasy/archive/2008/06/27/1230991.html
二、视图View
@{ ViewBag.Title = "Index"; } <script type="text/javascript"> $(function () { $("#btn").click(function () { var qrText = $.trim($("#txt").val()); $.post("default/SetQRCode", { qrText: qrText }, function (data) { if (data == "-1") { alert("生成二维码失败"); return false; } else { $("#qrimg").css("display", "block"); $("#qrimg").attr("src", data); } }); }); }); </script> <h2>生成二维码</h2> <label>输入二维码信息:</label><input type="text" id="txt" /> <input type="button" id="btn" value="生成二维码" /> <br /> <br /> <img src="" alt="二维码" id="qrimg" style="border:0;display:none" />
将需要做成二维码的文本,通过ajax传递到控制器中的SetQRCode中进行处理,生成二维码图。
三、控制器(default/SetQRCode)
先在控制器中添加命名空间
using ThoughtWorks.QRCode.Codec; using System.Drawing.Imaging; using System.IO; using System.Text;
然后编写Action
public ActionResult SetQRCode(string qrText) { try { if (Request.IsAjaxRequest()) { //设置编码方式为Byte。也可以设置为AlphaNumeric或Numeric QRCodeEncoder encoder = new QRCodeEncoder(); encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; //设置大小为4 encoder.QRCodeScale = 4; //设置版本为8 encoder.QRCodeVersion = 8; //设置纠错能力级别为M,也可以设置为H、L或Q encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; //数据内容编码 System.Drawing.Bitmap img = encoder.Encode(qrText,Encoding.UTF8); //图片名称 string filename = Guid.NewGuid().ToString() + ".gif"; //图片路径 string rootPath = "../Content/upload/"; string path = Server.MapPath(rootPath); if (!Directory.Exists(path)) Directory.CreateDirectory(path); string filepath = path + filename; //生成图片文件 FileStream fs=new FileStream(filepath,FileMode.OpenOrCreate,FileAccess.Write); img.Save(fs, System.Drawing.Imaging.ImageFormat.Gif); fs.Dispose(); img.Dispose(); //返回图片路径 return Content(rootPath + filename); } else return Content("-1"); } catch { return Content("-1"); } }
只需要三步,二维码就生成了,是不是很简单呢?
快用你的智能手机来扫描看看吧