二维码越来越热火了,做电子商务网站,不做二维码,你就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 = ;
//设置版本为8
encoder.QRCodeVersion = ;
//设置纠错能力级别为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");
}
}

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

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

最新文章

  1. js获取modelandview的值
  2. 20145304 Java第七周学习报告
  3. could not write file C:\DOCUME~1\ADMIN
  4. unity3d GameObject.Find 严格区分大小写的
  5. java学习之路---线程(重点)
  6. 4 常量类--Map常量
  7. kiki&#39;s game
  8. OSCHina技术导向:Java全文搜索框架Lucene
  9. [翻译]初识SQL Server 2005 Reporting Services Part 3
  10. 【Java基础】【18Map集合&amp;模拟斗D主X排和F排】
  11. jQuery的选择器中的通配符[id^=&#39;code&#39;]或[name^=&#39;code&#39;]及jquery选择器总结
  12. 前端技术之--HTML
  13. 网易云和QQ音乐api
  14. Flash 0day漏洞(CVE-2018-4878)复现
  15. 有用的sql语句积累
  16. GIL线程全局锁 协程
  17. 深入单例模式 - Java实现
  18. aiohttp笔记
  19. UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接
  20. 数组循环左移 i 位

热门文章

  1. Linux无法解析gitlib的地址--修改dns
  2. vue的cli中引入css文件
  3. i2c总线驱动,总线设备(适配器),从设备,从设备驱动的注册以及匹配
  4. 学习致用九---centos7.2+vim vundle
  5. 【慕课网实战】Spark Streaming实时流处理项目实战笔记四之铭文升级版
  6. 20171126--fragment的小项目
  7. Shell编程-11-子Shell和Shell嵌套
  8. POJ3104--Drying(Binary Search)
  9. SSM_CRUD新手练习(1)创建项目
  10. 再论hibernatetemplate