如何在内存中显示来自服务器端存储的图像
本文关键字:服务器端 存储 图像 显示 内存 | 更新日期: 2023-09-27 18:09:46
我在服务器端文件夹中保存了图像。服务器拥有映像的路径。客户端不能访问该文件夹,但服务器可以。我不能在img标签的src属性中附加URL,因为浏览器将无法显示,因为客户端没有权限。
在这种情况下如何显示这些图像?我被告知服务器可以将图像保存在内存中,然后在客户端渲染这些图像-我怎么做呢?我使用MVC 4, c#与sql server 2008 r2
如果您将图像存储在文件夹中,那么您可以直接使用物理文件路径的File()
方法:
public ActionResult Image(string id)
{
var dir = Server.MapPath("/Images");
var path = Path.Combine(dir, id + ".jpg");
return base.File(path, "image/jpeg");
}
您可以使用接受路径和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
您需要链接图像以指向控制器。然后控制器需要返回一个具有正确mime类型的FileResult
给浏览器。
顺序如下:
- 浏览器请求页面
- 带有反向链接的服务器返回页面(例如
<img src='/files/get/123.png'/>
) - 浏览器请求反向链接中的图像
- 服务器从
- 服务器返回图像到浏览器
FilesController
)动作调用(Get
),返回类型为FileResult
。请记住根据图像格式将mime类型设置为image'png
或gif
或jpeg
。