如何在MVC3中显示数据库中的图像和在视图中显示?

时间:2012-08-03 14:35:57

标签: asp.net-mvc-3 image

大家好我有一个FileUpload控件,用户可以上传图像和Doc文件,我在我的数据库中保存路径的URL 现在,当我从数据库中检索数据时,我想检查文件是.doc还是图像,如果是Doc,它将打开文件我的问题是我如何为图像做我怎么能检查它的图像和我必须在图像控件中显示图像控件从未在MVC3中的图像控件上工作

这是我的控制器代码

       public ActionResult ViewAttachments(string AttachmentName)
    {
        try
        {
            AttachmentName = Session["AttachmentUrl"].ToString();
            var fs = System.IO.File.OpenRead(Server.MapPath(" "+ AttachmentName+" "));
            return File(fs, "application/doc", AttachmentName);
        }
        catch
        {
            throw new HttpException(404, "Couldn't find " + AttachmentName);
        }
    } 

我在这里使用aspx页面我必须使用什么HTML以及我必须在此更改任何建议的代码

1 个答案:

答案 0 :(得分:0)

您可以做的是对扩展程序进行简单检查,并在您执行时返回FILE结果,或者使用包含简单图像控件的部分视图。

要扩展您的代码,您可以执行以下操作:

public ActionResult ViewAttachments(string AttachmentName)
    {
        try
        {
            AttachmentName = Session["AttachmentUrl"].ToString();
            var fs = System.IO.File.OpenRead(Server.MapPath(" " + AttachmentName + " "));
            var ext = Path.GetExtension(fs.Name);

            switch (ext)
            {
                case "doc":
                    return File(fs, "application/doc", AttachmentName);
                case "jpg":
                case "jpeg":
                case "png":
                    return PartialView("_imgControl", "http://www.mysite.com/downloads/" + AttachmentName + ext); 
            }                
        }
        catch
        {
            throw new HttpException(404, "Couldn't find " + AttachmentName);
        }
    }

然后在您的局部视图上,您​​可以将模型对象(在本例中是您网站上图像路径的网址)返回到标准的html图像控件。