首先是第一副是初始的页面,第二副是点击submit之后服务端生成的二维码,没有保存图片直接将图片流转成字符串返回到页面。
首先,这种生成二维码方式,而且不需要保存的情况可以在前端使用脚本来实现,那我在项目里也是这样做的。
然后js好像是不能接受服务端的文件流进行操作的,出于安全考虑。如果这种方式是可以的话,请告诉我,谢谢。
既然不能获取文件流,那就获取字符串,<img>标签又有一种特殊的用法,在src中这般写法 data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABId……………. 后面一长串是图片的字符串,然后就是代码,写法很容易。
服务端:
public ActionResult GetFileASCII(string content) { System.IO.MemoryStream ms=new System.IO.MemoryStream(); //这一步是获取二维码 QRCodeHelper.GetQRCode(content, ms); return Content(Convert.ToBase64String(ms.GetBuffer())); }客户端:
$.get('url/*服务端地址*/', { content: 'http://blog.sina.com.cn/s/blog_50042fab0100mcuy.html/*要生成二维码的内容*/' }, function (data) { $('#testimg').attr('src', 'data:image/png;base64,' + data); });
代码很简单,不仅是二维码,然而不需要保存的图片就可以这样做,像'data:image/png;base64, 也可在服务端生成。
新闻热点
疑难解答