我将图像保存在服务器端文件夹中。服务器有图像的路径。客户端无法访问该文件夹,但服务器可以。我无法在 img 标签的 src 属性中附加 URL,因为浏览器将无法显示,因为客户端没有权限。
在这种情况下如何显示这些图像?我被告知服务器可以将图像保存在内存中,然后在客户端渲染这些图像 - 我该怎么做?我正在使用 MVC 4、c# 和 sql server 2008 r2
我将图像保存在服务器端文件夹中。服务器有图像的路径。客户端无法访问该文件夹,但服务器可以。我无法在 img 标签的 src 属性中附加 URL,因为浏览器将无法显示,因为客户端没有权限。
在这种情况下如何显示这些图像?我被告知服务器可以将图像保存在内存中,然后在客户端渲染这些图像 - 我该怎么做?我正在使用 MVC 4、c# 和 sql server 2008 r2
您可以使用File
采用路径和 mime 类型的重载。在您的控制器操作中:
// 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
如果将图像存储在文件夹中,则可以File()
直接使用物理文件路径的方法:
public ActionResult Image(string id)
{
var dir = Server.MapPath("/Images");
var path = Path.Combine(dir, id + ".jpg");
return base.File(path, "image/jpeg");
}
您需要链接图像以指向控制器。然后,控制器需要将FileResult
具有正确 mimetype 的 a 返回给浏览器。
顺序如下:
<img src='/files/get/123.png'/>
)FilesController
) 操作调用 ( Get
) 。请记住根据您的图像格式FileResult
将 mime 类型设置为image\png
orgif
或。jpeg