1

我不知道我该怎么做。这是我搜索图像时的代码:

public ActionResult SearchImage() {    
    var path = @"\\jesus-pc\Frontera\IMAGENES\SINGNOS DISTINTIVOS\0\80HP23891268272.TIF";
    FileStream stream = new FileStream(path,FileMode.Open,FileAccess.Read);
    byte[] data = new byte[(int)stream.Length];
    stream.Read(data,0, data.Length);

    return Json(new { base64image = Convert.ToBase64String(data) }, JsonRequestBehavior.AllowGet);
}

我通过ajax做到这一点:

$(".doc").dblclick(function () {                  
    $.ajax({
        url: "mainpage/SearchImage",
        contentType: 'application/json',
        dataType: "json",
        type: "get",
        success: function (data) {
            ModalWindow.open();
            document.getElementById("img_1").src = 
                "data:image/jpeg;base64"+data.base64image;
        }

})

但这是我在浏览器中得到的:

{ base64image:“SUkqAEgAAABXQU5HIFRJRkYgAQAwAAAAVGl0bGU6AEF1dGhvcjoAU3ViamVjdDoAS2V5d29yZHM6AENvbW1lbnRzOgAAAAAAEgD+AAQAAQ...AAFXEAAAA==”

4

1 回答 1

0

我相信这就是你要找的。

ASP.NET MVC 控制器可以返回图像吗?

这与 base 64 编码图像无关。如果这是您想要的,Base 64 编码确实可以工作,但看起来您只是想从服务器传递图像以在客户端中呈现。您可以使用 FileResult 轻松完成此操作。

在您的情况下,您的图像src标签应该只是src="mainpage/SearchImage",并且您现有的代码隐藏应该替换为以下内容:

public ActionResult SearchImage(string id)
{
    var path = @"\\jesus-pc\Frontera\IMAGENES\SINGNOS DISTINTIVOS\0\80HP23891268272.TIF";
    return base.File(path, "image/tiff");
}
于 2013-04-18T15:48:23.707 回答