MVC3学习:利用jquery+ajax生成二维码(支持中文)

二维码越来越热火了,做电子商务网站,不做二维码,你就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");

            }

        }

只需要三步,二维码就生成了,是不是很简单呢?

快用你的智能手机来扫描看看吧

MVC3学习:利用jquery+ajax生成二维码(支持中文)

你可能感兴趣的:(jquery)