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

本文关键字:检索 图像 搜索 文件夹 | 更新日期: 2023-09-27 18:28:39

hi我正在用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给出了链接。但它可以接受。请帮帮我。

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

我认为您需要的是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
}

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

控制器

public string ImageRetrive(int imgname){ }

更改返回路径

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