[英]return image byte array in an action of mvc controller and display image in javascript
在MVC中,我們將從服務器獲取圖像並將其顯示在客戶端中,控制器中的GetImage Action如下:
public byte[] GetImage()
{
byte[] imgByteArray=File.ReadAllBytes("Img1.jpeg");
return imgByteArray ;
}
而客戶端的javascript代碼如下:
$.ajax(
...
success: function (response) {
$('#imgResult')
.attr('src', 'data:image/jpeg;base64,' + response);
},
error: function (er) {
alert(er);
}
成功接收到響應,但不顯示圖像,並且src值設置為:
src="data:image/jpeg;base64,System.Byte[]"
如何解決這個問題?
經過測試的工作代碼:
控制器:
[HttpGet]
public JsonResult GetImage()
{
System.Drawing.Image img =
System.Drawing.Image.FromFile(@"D:\yourimagepath.PNG");
byte[] bytes;
using (MemoryStream ms = new MemoryStream())
{
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
bytes = ms.ToArray();
}
return Json(new { base64imgage = Convert.ToBase64String(bytes) }
, JsonRequestBehavior.AllowGet);
}
Ajax通話:
$.ajax({
.....
success: function (data) {
var imag = "<img "
+ "src='" + "data:image/png;base64,"
+ data.base64imgage + "'/>";
$("#imgResult").html(imag);
//here imgResult is Div id and inside img is getting created.
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.