如何使用控制器中的imageid从数据库中检索图像

时间:2012-11-02 15:25:13

标签: asp.net-mvc-3 jquery

将图像保存在Web目录中并使用此方法将URL存储在数据库中,我将图像URL存储在数据库中。基于该图像id(我需要将此图像id从Ajax调用传递给控制器​​)​​。我需要检索图像。

我使用jQuery模板获取了图片ID,因此我已将该图片ID传递给控制器​​。我应该在控制器,filepathresult或fileresult中写什么?还是有另一种方法吗?

2 个答案:

答案 0 :(得分:0)

好的,你有点困惑。

您拥有实际的图像文件file.jpg,并且您拥有该文件的物理路径D:\some\path\to\file.jpg

您拥有该文件的URL路径和代理身份(您的ID)。

  • id:1337(一些随机数)
  • 网址:????

第一个问题:

您说您正在存储该网址。它真的是完整的URL吗?它只是图像的部分路径吗?是来自网站根目录还是应用程序根目录的路径?它只是一个部分物理路径吗?

第二个问题:

你究竟想做什么?

您是否只想获得图像的完整路径?如果你已经拥有了id,为什么你需要Ajax呢?如果出现任何性能需求,您可能需要重新考虑如何存储图像。

一旦图像获得新的身份,在任何地方使用该新身份通常都是有意义的;您可能应该考虑在上传文件后为新身份复制/重命名该文件(并可能保存旧文件名以保留记录)。但是,如果您需要按原样保留文件名(或多或少),最好能够获取整组ID的URL,而不是单独发出Ajax请求。标识。

答案 1 :(得分:0)

如果您请求具有物理文件的资源(AKA导航到URL),IIS将直接为其提供服务(即,如果您要求www.mysite.com/Images/Image3.jpg IIS将直接提供服务)。我真的不明白你在做什么,但是如果你的意思是你使用带有图像id的MVC控制器的Ajax调用获得图像的关联URL,你可以做几件事。

  1. 您只需返回网址并使用JavaScript代码创建包含该网址的图片代码,然后将其插入DOM
  2. 您可以返回类似< img src =“{yoururl}”/>的视图并使用JavaScript将其插入DOM。
  3. 您可以直接将图像存储在数据库中,并使用File方法返回指示正确MIME类型的图像位。