搜索和检索文件夹中的图像

时间:2013-08-23 07:08:58

标签: c# html5 asp.net-mvc-4

我正在使用c#在MVC4中进行一个项目。 在我的项目中,我将一组人员详细信息存储在具有唯一ID的数据库中,并将特定人员的个人资料图片存储在我项目的文件夹中。(身份证号码和图片名称相同)。 在视图中我希望显示所有这些细节。问题在于图像。我使用以下代码

查看

   @foreach(var item in Model)
    {
       <td><img src="@Url.Action("ImageRetrive", "Member", new {imgname=(item.Id)})" /><br />Rtn. @item.Mem_NA<br />(@item.Mem_Occ)</td>
    }

控制器

    public string ImageRetrive(int imgname)
    {
        string keyword=image.ToString();
        string imagefolderpath = Server.MapPath("~/Content/Member/MemberPhotos");
        string currentimage  = new Member().GetImage(imagefolderpath,keyword);
        string fullpath = "~/Content/Member/MemberPhotos/" + currentimage;
        return fullpath;

    }

模型

   public string GetImage(string path,string keyword)
    {
       DirectoryInfo di = new DirectoryInfo(path);
        FileInfo[] images = di.GetFiles();
        foreach (FileInfo image in images)
        {
            var name = image.Name;
            if (name.Contains(keyword))
            {
                imgname = name;
            }
        }
        return imgname;
    }

但我没有得到任何输出。在控制器中,变量fullpath给出了链接。但它可以接受。请帮帮我。

2 个答案:

答案 0 :(得分:1)

在您的视图中,您将imgname作为参数传递,并在控制器中获得image

<强>控制器

public string ImageRetrive(int imgname){ }

更改退货路径

return File(fullpath, "text/plain"); 

答案 1 :(得分:1)

我认为您需要FilePathResult,将控制器代码更改为

public FilePathResult  ImageRetrive(int imgname)
{
    string keyword=image.ToString();
    string imagefolderpath = Server.MapPath("~/Content/Member/MemberPhotos");
    string currentimage  = new Member().GetImage(imagefolderpath,keyword);
    string fullpath = "~/Content/Member/MemberPhotos/" + currentimage;

    return File(fullpath, "image/png"); //Changed here
}

或您可以使用FileContentResult

public FileContentResult Retrive(int imgname)
{
    return File(ConvertToByteArray(YourFile), "image/png"); //Changed here
}