分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

MVC二维码生成代码

发布时间:2023-09-06 02:35责任编辑:胡小海关键词:MVC二维码

第一步:下载ThoughtWorks.QRCode.dll   建议用这个版本的:1.0.2774.19990

下载路径:https://dl.pconline.com.cn/download/1407628-1.html

第二部封装一个类:引用 ThoughtWorks.QRCode.dll  控件

/// <summary>
???/// 二维码生成
???/// </summary>
???public class QrCodeHelper
???{
???????#region 保存图片
???????/// <summary>
???????/// 保存图片
???????/// </summary>
???????/// <param name="strPath">保存路径</param>
???????/// <param name="img">图片</param>
???????/// <returns>图片路径</returns>
???????public static string SaveImg(string strPath, Bitmap img)
???????{
???????????//保存图片到目录
???????????if (Directory.Exists(strPath))
???????????{
???????????????//文件名称
???????????????string guid = Guid.NewGuid().ToString().Replace("-", "") + ".png";
???????????????img.Save(strPath + "/" + guid, System.Drawing.Imaging.ImageFormat.Png);
???????????????return (guid);
???????????}
???????????else
???????????{
???????????????//当前目录不存在,则创建
???????????????Directory.CreateDirectory(strPath);
???????????????return "";
???????????}
???????}
???????#endregion

???????#region 生成二维码图片
???????/// <summary>
???????/// 生成二维码图片
???????/// </summary>
???????/// <param name="codeNumber">要生成二维码的字符串</param> ????
???????/// <param name="size">大小尺寸</param>
???????/// <returns>二维码图片</returns>
???????public static Bitmap Create_ImgCode(string codeNumber, int size)
???????{
???????????//创建二维码生成类
???????????QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
???????????//设置编码模式
???????????qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
???????????//设置编码测量度
???????????qrCodeEncoder.QRCodeScale = size;
???????????//设置编码版本
???????????qrCodeEncoder.QRCodeVersion = 0;
???????????//设置编码错误纠正
???????????qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
???????????//生成二维码图片
???????????System.Drawing.Bitmap image = qrCodeEncoder.Encode(codeNumber);
???????????return image;
???????}
???????#endregion

???????#region 打开指定目录
???????/// <summary>
???????/// 打开指定目录
???????/// </summary>
???????/// <param name="path"></param>
???????public static void Open_File(string path)
???????{
???????????System.Diagnostics.Process.Start("explorer.exe", path);
???????}
???????#endregion

???????#region 删除目录下所有文件
???????/// <summary>
???????/// 删除目录下所有文件
???????/// </summary>
???????/// <param name="aimPath">路径</param>
???????public static void DeleteDir(string aimPath)
???????{
???????????try
???????????{
???????????????//目录是否存在
???????????????if (Directory.Exists(aimPath))
???????????????{
???????????????????// 检查目标目录是否以目录分割字符结束如果不是则添加之
???????????????????if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar)
???????????????????????aimPath += Path.DirectorySeparatorChar;
???????????????????// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
???????????????????// 如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方法
???????????????????string[] fileList = Directory.GetFiles(aimPath);
???????????????????//string[] fileList = Directory.GetFileSystemEntries(aimPath);
???????????????????// 遍历所有的文件和目录
???????????????????foreach (string file in fileList)
???????????????????{
???????????????????????// 先当作目录处理如果存在这个目录就递归Delete该目录下面的文件
???????????????????????if (Directory.Exists(file))
???????????????????????{
???????????????????????????DeleteDir(aimPath + Path.GetFileName(file));
???????????????????????}
???????????????????????// 否则直接Delete文件
???????????????????????else
???????????????????????{
???????????????????????????File.Delete(aimPath + Path.GetFileName(file));
???????????????????????}
???????????????????}
???????????????}
???????????}
???????????catch (Exception e)
???????????{
???????????????throw e;
???????????}
???????}
???????#endregion

第三部 :控制器代码

/// 生成二维码
???????/// </summary>
???????/// <returns></returns>
???????[HttpGet]
???????public ActionResult CreateQRcode()
???????{
???????????return View();
???????}

???????[HttpPost]
???????public ActionResult CreateQRcode(string content)
???????{
???????????string currentPath = Server.MapPath("~/.") + @"\Content\Own\BarCode_Images";//二维码图片存放的路径
???????????Bitmap bs = QrCodeHelper.Create_ImgCode(content, 8);//创建二维码图片
???????????string imgUrl = QrCodeHelper.SaveImg(currentPath, bs);//保存图片
???????????ViewBag.ImgUrl = @"/Content/Own/BarCode_Images" + @"/" + imgUrl;//将路径返回到前台引用
???????????return View();
???????}

第四部:前段代码

<div>

@{
???????????ViewBag.Title = "创建二维码";
???????}
???????<h2>创建二维码</h2>
???????<form id="form1" action="/My/CreateQRcode" method="post">
???????????<div>
???????????????请输入内容:<input type="text" name="content" />
???????????????<br />
???????????????<input id="Button1" value="生成二维码" type="submit" />
???????????</div>
???????????<div>
???????????????@if (ViewBag.ImgUrl != null)
???????????????{
???????????????????<img src="@ViewBag.ImgUrl" />
???????????????}
???????????</div>
???????</form>
???</div>

第五步:修改前段路径修改成自己的控制器名字

MVC二维码生成代码

原文地址:https://www.cnblogs.com/SuperGood/p/10566840.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved