zoukankan      html  css  js  c++  java
  • 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");
                }
            }

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

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

  • 相关阅读:
    【Oracle】EXPDP和IMPDP数据泵进行导出导入的方法
    【Oracle】无法删除当前连接的用户
    消除SVN锁定
    提取当前目录所有文件名
    【Weblogic】domain快速启动脚本
    Spring @Transactional注解不回滚不起作用无效
    协方差与相关系数
    利用深度学习解决直播支付风控[转]
    高质量API网关组件实现
    git使用初探
  • 原文地址:https://www.cnblogs.com/denny402/p/3234107.html
Copyright © 2011-2022 走看看