这是我的控制器。
ImagePath
是从数据库中获取的路径,blobUrl
是天蓝色的存储路径。我加入这两条路径并将其转换为 64base 字符串。但是如何在上面的 validationdata
中再次将那个 64base 值 resultimg
传递给 Base64string
?。因为我无法直接访问图像进行显示。所以需要在 64base 中转换。
如何将 resultimg
值传递给 Base64string
???
[HttpGet]
public JsonResult GetImageList(int TaskID)
{
try
{
List<Validation> validationdata = new List<Validation>();
validationdata = (from d in _context.ImgTable
where (d.Taskid == TaskID )
select new Validation
{
d.ImageID,
d.Taskid,
d.ImagePath,
blobUrl = blobContainer.Uri.AbsoluteUri,
Base64string =???
}).ToList();
//Joining two path and converting it to base64
List<string> ImgByteUrl = new List<string>();
foreach (var item in validationdata.ToList())
{
var imgID = item.ID;
var storagepath = item.blobUrl; //azure storage url
var imgurl = item.ImagePath.Trim(); // db image path
var img1 = img.Split('\');
imgurl = (storagepath + '/' + img1[5]); //joined both path
byte[] bytes = (new FileUploadDownload(img)).GetByteStream(); //converting in byte
string imreBase64Data = Convert.ToBase64String(bytes);
string resultimg = string.Format("data:image/jpg;base64,{0}", imreBase64Data);
ImgByteUrl.Add(resultimg);
//validationdata.Add(resultimg);
}
var jsonResult = Json(validationdata, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;
return jsonResult;
}
catch (Exception ex)
{
}
}
请帮助我如何走得更远,否则请用任何其他方式指导我。我想在 html 页面中显示图像。我从下拉列表中选择 Taskid,然后单击它显示与 html 中该 taskid 相关的图像 table.Below 是 js 函数:
$.ajax({
type: 'GET',
url: '@Url.Action("GetImageList")',
datatype: JSON,
data: {
'TaskID': $("#tasklist").val() //getting selected TaskID from dropdown
},
success: function (data) {
var row_no = 1;
$.each(data, function (i, item) {
+ "<td id='ItemId" + row_no + "' >" + item.ID + "</td>" // displaying image id in html table
"<td>"
+ "<div><object id='Image" + row_no + "' data=" + item.Base64string +></object>" // display image for that imageid
+ "</div></td > "
});
这是我们在转换为字节并将该值传递给