我将图像保存在服务器端文件夹中。服务器具有图像的路径。客户端无法访问该文件夹,但服务器可以。我无法在img标记的src属性中附加URL,因为浏览器无法显示,因为客户端没有权限。
在这种情况下如何显示这些图像?我被告知服务器可以将图像保存在内存中,然后在客户端呈现这些图像 - 我该怎么做?我正在使用MVC 4,c#与sql server 2008 r2
答案 0 :(得分:1)
您可以使用带有路径和mime类型的File
重载。在您的控制器操作中:
// Sub the appropriate mime type for the image
return File(thePathFromTheDb, "image/jpg");
http://msdn.microsoft.com/en-us/library/dd492492(v=vs.108).aspx
或者,如果您的图像数据来自数据库,则在您的控制器操作中:
byte[] bytes = GetImageBytesFromDatabase(); // Sub your code to get bytes
return File(bytes, "image/jpg"); // Sub the appropriate mime type for the image
http://msdn.microsoft.com/en-us/library/dd460208(v=vs.108).aspx
答案 1 :(得分:1)
如果您将图像存储在文件夹中,则可以直接使用File()
方法和物理文件路径:
public ActionResult Image(string id)
{
var dir = Server.MapPath("/Images");
var path = Path.Combine(dir, id + ".jpg");
return base.File(path, "image/jpeg");
}
答案 2 :(得分:0)
您需要链接图像以指向控制器。然后,控制器需要将具有正确mimetype的FileResult
返回给浏览器。
序列如下:
<img src='/files/get/123.png'/>
)FilesController
)动作调用(Get
)并返回FileResult
类型。请务必根据图片格式将mime类型设置为image\png
或gif
或jpeg
。