从文件夹中搜索和检索图像
本文关键字:检索 图像 搜索 文件夹 | 更新日期: 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");