二维码生成
生成单个二维码
public JsonResult Create()
{
var msg = new JsonMessage(false, "添加失败");
var qmodel = new Qrcode() { QrcodeURL = "" };
new QrcodeService().AddEntity(qmodel);
//引用二维码的程序集
string qrcode = QrCodeApi.GetShowQrCodeUrl(QrCodeApi.Create(WeixinController.AppId, 0, qmodel.Id).ticket);
//保存二维码到数据库,也可以用别的方法写
new QrcodeService().Update(a => a.Id == qmodel.Id, b => new Qrcode {
QrcodeURL = qrcode,
});
msg.Status = true;
msg.Results = "/Qrcode/Index";
//生成之后保存二维码到文件夹
WebClient w = new WebClient();
string datetime = DateTime.Now.ToString("yyyyMMddHHmmss");
string savePath = Server.MapPath("/UploadFile/Qrcode/" + datetime + "编号" + qmodel.Id + ".jpg");
w.DownloadFile(qrcode, savePath);//指定的URL以及保存的物理路径
w.Dispose();
return Json(msg);
}
//批量生成二维码
//nums 要生成二维码的数量
public JsonResult Createnums(int? nums)
{
var msg = new JsonMessage(false,"二维码生成失败");
var qmodel = new Qrcode() { QrcodeURL = "" };
//批量生产所以写了个循环,基本上生成一次性生成1000条都可以的。3000条以上运行速度就比较慢
有更好的写法望指导
for (int i = 0; i < nums; i++)
{
new QrcodeService().AddEntity(qmodel);
//引用二维码的程序集
string qrcode = QrCodeApi.GetShowQrCodeUrl(QrCodeApi.Create(WeixinController.AppId, 0, qmodel.Id).ticket);
//保存二维码到数据库,也可以用别的方法写
new QrcodeService().Update(a => a.Id == qmodel.Id, b => new Qrcode
{
QrcodeURL = qrcode,
});
msg.Status = true;
msg.Results = "二维码生成成功";
//生成之后保存二维码到文件夹
WebClient w = new WebClient();
string datetime = DateTime.Now.ToString("yyyyMMddHHmmss");
string savePath = Server.MapPath("/UploadFile/Qrcode/" + qmodel.Id + ".jpg");
w.DownloadFile(qrcode, savePath);//指定的URL以及保存的物理路径
w.Dispose();
}
return Json(msg);
}