先把圖片路徑當作參數,ajax異步傳到後台方法中上傳伺服器,直接用Jquery傳是不行的,它沒有權力跟伺服器打交道,具體內容不廢話了,直接看下文,介紹的很詳細。
先給大家看下效果圖:
首先是第一副是初始的頁面,第二副是點選submit之後服務端產生的二維碼,沒有儲存圖片直接將圖片串流轉成字串回到頁面。
簡介:
首先,這種產生二維碼方式,而且不需要保存的情況可以在前端使用腳本來實現,那我在專案裡也是這樣做的。
然後js好像是不能接受服務端的檔案流進行操作的,出於安全考慮。如果這種方式是可以的話,請告訴我,謝謝。
既然無法取得檔案流,那就取得字串,標籤又有一種特殊的用法,在src中這般寫法data:jquery控制顯示伺服器產生的圖片流_jquery/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:jquery控制顯示伺服器產生的圖片流_jquery/png;base64,' + data); });
總結:
程式碼很簡單,不僅是二維碼,然而不需要保存的圖片就可以這樣做,像'data:jquery控制顯示伺服器產生的圖片流_jquery/png;base64, 也可在服務端生成。
以上內容就是本文的全部內容,希望對大家有幫助。