我有很多图像保存在服务器端的文件夹中,数据库有每个文件的url,客户端由于允许不能直接打开图像。我的问题是如何从服务器对图像进行编码以在浏览器中显示它?
这是我在操作结果中搜索图像的代码:
public FileResult SearchImage()
{
var path = @"\\jesus-pc\Frontera\IMAGENES\SINGNOS DISTINTIVOS\0\80HP23891268272.TIF";
var img1 = System.IO.File.ReadAllBytes(path);
return File(im1, "image/jpg");
}图像存在,但所显示的内容如下:

我尝试过使用Convert.ToBase64String(img1),但是我得到了一个错误:
the server responded with a status of 414 (Request-Uri Too Long)我做错了什么?
更新:
我的错是我没有写我正在做的事情的全部代码。
最后一个没有提到的部分是im使用ajax调用图像。
当用户发送信息请求时,将有一个链接打开一个模式框。在该模式框中,必须显示图像,但图像将使用ajax加载,因为不应该重新加载页面。因此,图像将被请求使用ajax。这是我的代码:
$(".doc").dblclick(function () {
$.ajax({
url: "mainpage/SearchImage",
data: "",
type: "post",
success: function (data) {
ModalWindow.open();
document.getElementById("img_1").src = data;
}
})发布于 2013-04-18 13:01:24
考虑使用FileStreamResult而不是FileResult。这应该能解决你的问题。代码应该类似于:
public FileStreamResult SearchImage()
{
var path =
@"\\jesus-pc\Frontera\IMAGENES\SINGNOS DISTINTIVOS\0\80HP23891268272.TIF";
var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
return new FileStreamResult(fileStream, "image/jpeg");
}另一件引起我注意的事情是mime类型的指定。在文件名中,它是tif,但在代码中是jpeg。
更新
你为什么要用ajax来做这个呢?相反,你可以做这样的事情:
$('#img_1').attr('src', 'mainpage/SearchImage');https://stackoverflow.com/questions/16083599
复制相似问题