这是Model层

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Book.Models
{
    public class BookModel
    {
        public Guid BookId { get; set; }
        public string BookName { get; set; }
        public string BookISBN { get; set; }
        public string BookMa { get; set; }
        public string ErMa { get; set; }
        public DateTime BookTime { get; set; }
    }
}

这是分页类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Book.Models
{
    /// <summary>
    /// 分页类
    /// </summary>
    public class Pager
    {
        public int count { get; set; }
        public List<BookModel> list { get; set; }
    }
}

这是控制器

需要拉缓存helper

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Newtonsoft.Json;
using Spire.Barcode;
using System.Drawing;
using ThoughtWorks.QRCode.Codec;

namespace Book.Controllers
{
    public class KZQController : Controller
    {
        // GET: KZQ
        public ActionResult Index()
        {
            return View();
        }
       
        List<Models.BookModel> mjihe = new List<Models.BookModel>();//定义一个存放model信息的空集合
        /// <summary>
        /// 添加方法
        /// </summary>
        /// <param name="m"></param>
        /// <returns></returns>
        public int BookAdd(Models.BookModel m)
        {
            try
            {
                m.BookId = Guid.NewGuid();//添加唯一标识符
                mjihe.Add(m);//将book信息添加到集合
                List<Models.BookModel> huanjihe = CacheHelper.GetCache("Key") as List<Models.BookModel>;//定义一个存cache集合
                if (huanjihe != null)
                {
                    mjihe.AddRange(huanjihe);//将缓集合中的数据填到model集合中去,
                }
                CacheHelper.SetCache("Key", mjihe, TimeSpan.FromMinutes(5));//每隔5分钟缓存集合里的数据就会被实体集合中的数据覆盖清除

var path = Server.MapPath("\\BookTxt\\"); //定义文件夹
                if (!Directory.Exists(path))//判断是否不存在此文件夹
                {
                    Directory.CreateDirectory(path);//如果不存在则创建
                }
                //FileMode主要是查找Book.text文件尾或者创建Book.text
                using (FileStream filewrite = new FileStream(path + "Book.txt", FileMode.Append, FileAccess.Write))
                {
                    using (StreamWriter read = new StreamWriter(filewrite))//读文件流
                    {
                        read.Write(JsonConvert.SerializeObject(m) + ",");//将读到的文件流转化字符串写入
                    }
                }
                return 1;
            }
            catch (Exception)
            {
                return 0;
            }
        }
        /// <summary>
        /// 生成条形码
        /// </summary>
        /// <param name="content"></param>
        /// <returns></returns>
        public JsonResult GenerateBarCodeBySpire(string content)
        {
            //创建BarcodeSettings对象
            BarcodeSettings settings = new BarcodeSettings();
            // 设置条形码类型为EAN - 13
            settings.Type = BarCodeType.EAN13;
            //设置条形码数据
            settings.Data = content;
            //使用校检和
            settings.UseChecksum = CheckSumMode.ForceEnable;
            //在底部显示条形码数据
            settings.ShowTextOnBottom = true;
            //设置宽度
            settings.X = 1f;
            //初始化BarCodeGenerator对象, 传入以上设置
            BarCodeGenerator generator = new BarCodeGenerator(settings);
            //创建条形码图片并保存为PNG格式
            Image image = generator.GenerateImage();

var path = Server.MapPath("\\Ma\\");//相对路径
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            string guid = Guid.NewGuid().ToString().Replace("-", "") + ".png";    //图片名称
            image.Save(path + guid);
            return Json("/Ma/" + guid);
            //string filePath = @"D:\Image\" + guid; //图片保存地址,需要绝对路径
            //image.Save(filePath, System.Drawing.Imaging.ImageFormat.Png);
        }
        /// <summary>
        /// 生成二维码图片  
        /// </summary>
        /// <param name="content"></param>
        /// <returns></returns>
        public JsonResult CreateImage(string content)
        {
            string guid = Guid.NewGuid().ToString().Replace("-", "") + ".png";    //图片名称
            int size = 10;  //二维码中每个小点的大小
            Bitmap image = CreateImgCode(content, size); //生成二维码图片
            //保存图片,需要图片的绝对地址,这是web项目
            var path = Server.MapPath("\\ERMa\\");//相对路径
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            image.Save(path+guid);
            return Json("/ERMa/"+guid);
        }
        
        /// <summary>  
        /// 生成二维码图片 
        /// </summary>  
        /// <param name="codeNumber">要生成二维码的字符串</param>       
        /// <param name="size">二维码每个颗粒大小尺寸</param>  
        /// <returns>二维码图片</returns>  
        public Bitmap CreateImgCode(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;
        }

public ActionResult Show()
        {
            return View();
        }
        int i = 0;
        /// <summary>
        /// 分页展示
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public string BookShow(int PageIndex,int PageSize)
        {
            List<Models.BookModel> huanlist = CacheHelper.GetCache("Key") as List<Models.BookModel>;//将Key cache中的数据赋给集合
            List<Models.BookModel> list = null;//用来存放文本中的信息
            if (i == 0 )
            {

var path = Server.MapPath("\\BookTxt\\");//获取到文本目录路径
                using (StreamReader read = new StreamReader(path + "Book.txt"))//读取文件流
                {
                    string str = "[" + read.ReadToEnd().ToString().TrimEnd(',') + "]";//读取流中数据
                    list = JsonConvert.DeserializeObject<List<Models.BookModel>>(str);
                    //string json = JsonConvert.SerializeObject(list);
                    //return json;
                }
                i++;
            }
            else
            {
                list = huanlist;//将缓存集合中获取到的数据放入文本集合
            }
            Models.Pager m = new Models.Pager();
            m.list = list.Skip((PageIndex-1)*PageSize).Take(PageSize).ToList();//分页
            m.count = list.Count();
            
            string json = JsonConvert.SerializeObject(m);
            return json;
        }

}
}

这是添加页面

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>BookAdd</title>
    <script src="~/Scripts/jquery-1.10.2.js"></script>
    <script>
        function fh()
        {
            location.href = "/KZQ/Show";
        }
    </script>
</head>
<body>
    <div>
        <input type="button" οnclick="fh()" name="name" value="返回" />
    </div>
    <div>
        <table>
            <tr>
                <td>书名:</td>
                <td><input type="text" id="BookName" value="" /></td>
            </tr>
            <tr>
                <td>ISBN码:</td>
                <td><input type="text" id="BookISBN" value="" /></td>
            </tr>
            <tr>
                <td><input type="button" οnclick="sc()" name="name" value="生成条形码" /></td>
                <td id="ma"></td>
            </tr>
            <tr>
                <td><input type="text" id="MaPath" value="" /></td>
                <td><input type="text" id="ERMaPath" value="" /></td>
            </tr>
            <tr>
                <td>添加时间:</td>
                <td><input type="date" id="BookTime" value="" /></td>
            </tr>
            <tr>
                <td><input type="button" οnclick="add()" name="name" value="添加" /></td>
            </tr>
        </table>
    </div>
</body>
</html>

这是展示页面

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Show</title>
    <script src="~/Scripts/jquery-1.10.2.js"></script>
    <link href="~/Content/bootstrap.css" rel="stylesheet" />
    <script>
        function fh()
        {
            location.href = "/KZQ/Index";
        }
    </script>
</head>
<body>
    <div>
        <input type="button" name="name" οnclick="fh()" value="返回添加" />
    </div>
    <div id="table">

</div>
    <nav>
        <div id="ye">

</div>
    </nav>
</body>
</html>

C#二维码条码生成存入文本加缓存相关推荐

  1. 一维码和二维码的生成与解析

    转载至https://blog.csdn.net/weixin_38902950/article/details/86771397 注意: 1.Zxing生成的条形码下边没有数字,barcode4j有 ...

  2. 二维码批量生成下载工具

    二维码批量生成下载工具 https://tooltt.com/qrcode-batch/ 通过文本列表批量生成二维码,支持打包下载,方便快捷 https://tooltt.com/qrcode-bat ...

  3. .net core 的图片处理及二维码的生成及解析

    写代码这事,掐指算来已经十有余年. 从html到css到javascript到vbscript到c#,从兴趣到职业,生活总是失落与惊喜并存. 绝大部分时候,出发并不是因为知道该到哪里去,只是知道不能再 ...

  4. 微信公众号二维码怎么生成?好用的生成方法介绍

    微信公众号二维码怎么生成?从事新媒体行业的小伙伴们应该都对微信公众号不陌生吧,公众号是一个企业对外宣传的重要方式之一.通常情况下我们都会将公众号的二维码放置在文章的文末.以便于读者扫码关注公众号.那么 ...

  5. 二维码的生成原理是什么

    二维码是一种用来表示文本或者网址的图像,它通常是一个黑白相间的方块组成的图案.二维码的生成原理是将文本或者网址先编码成一个二进制数据流,然后在图像中用不同的黑白色块来表示这些二进制数据.在生成二维码时 ...

  6. 二维码的生成和解析原理

    二维码结构 1.版本信息:version1(21*21),version2,...,version40,一共40个版本.版本代表每行有多少模块,每一个版本比前一个版本增加4个码元,计算公式为(n-1) ...

  7. iOS开发 - 二维码的生成与读取

    二维码的生成 从iOS7開始集成了二维码的生成和读取功能 此前被广泛使用的zbarsdk眼下不支持64位处理器 生成二维码的步骤: 导入CoreImage框架 通过滤镜CIFilter生成二维码 二维 ...

  8. [日推荐]『草料二维码』免费二维码在线生成工具

    二维码又称QR Code,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型.人们可以把名片.邮件.网址.电话号码.等信息生成对应的二 ...

  9. H5二维码海报生成保存相关问题记录

    H5二维码海报生成保存相关问题记录 最近在开发H5页面中遇到二维码生成保存并下载到系统相册中的问题.问题大致分为:生成海报不全,未按照H5页面的显示进行海报保存,图片模糊等相关问题. 使用技术:qrc ...

最新文章

  1. cocos2d-x的未来展望
  2. 从零开始学习jQuery (八) 插播:jQuery实施方案
  3. 从网页(WEB)登录SAP
  4. 思科发布全新Catalyst 2960-L系列交换机
  5. WCF读书笔记(1)
  6. HTML学习总结(2)——标题/水平线/注释/段落/折行/文本格式化
  7. 刚接触mybatis,很容易分不清#{id}和#{param1}的使用情况,本篇文章详解了两者的作用以及使用情况
  8. 驰为vi10旗舰版linux,驰为Vi10平板电脑完全安装Win10步骤 BY Chinasred
  9. python去掉停用词_Python - 删除停用词
  10. 清理windows10系统垃圾文件-bat批处理命令
  11. 最新Everest 企业版(AIDA64)使用SQL保存数据的方法介绍
  12. 第六章 自然的数学化和分析化
  13. ANSYS APDL学习(12):如何将ansys求解后的数据(点位移/应力/应变等)导出到txt文件
  14. java登陆界面_【java中实现登录界面功能】
  15. POJ1008:玛雅日历
  16. 基于web的木子日记个人博客网站的设计与实现
  17. 页眉怎么添加【节】,设置不同章节不同页眉
  18. omnet++,veins,sumo使用多应用层实现车辆和行人的模拟
  19. 【Linux脚本-sed命令在文本首行和尾行插入空行】
  20. VB.NET 入门教程

热门文章

  1. 君子慎独,卑以自牧!
  2. 微信小程序开发笔记 进阶篇④——基于iconfont快速实现icon图标显示
  3. 软件工程师眼睛疲劳咋办啊_如何避免计算机眼睛疲劳并保持眼睛健康
  4. word题注编号格式从仅数字顺序编号到包含章节号编号
  5. kindEditor 富文本编辑器 使用介绍
  6. CentOS7 中没有显示 ip 地址
  7. 武大计算机系雷军,马化腾739分、雷军700分系湖北状元!大佬们的高考成绩让人敬畏!...
  8. 视频教程-软考系统集成项目管理工程师视频教程(下)-软考
  9. 【bitset乱搞】BZOJ3687 简单题
  10. C++小游戏---杀手1.2.3