【发布时间】:2019-04-27 02:00:42
【问题描述】:
我有一个项目需要将多个图像存储在 wwwroot 文件夹中。图像参考保存在数据库中。所以我编写了一个函数来检索图像引用,并遍历保存在 wwwroot 文件夹中的图像。
到目前为止,我只能检索文件夹中的第一张图片。很遗憾,其他图片没有返回。
下面是代码:
[HttpGet("images")]
public IActionResult GetImages()
{
var results = _context.ImageTable.Select(i => i.ImageNames).ToList();
foreach (var result in results)
{
var folderPath = Path.Combine(_hostingEnvironment.WebRootPath, "imagesFolder", $"{result}.png");
var file= System.IO.File.ReadAllBytes(folderPath);
return File(file, "image/jpg");
}
return NotFound("No Images");
}
So what I'm expecting are all the images saved in the wwwroot folder to be displayed.
【问题讨论】:
-
通常 1 个 http 请求需要 1 个图像,除非您的客户端知道如何处理多个图像。我不认为你正在为一个特殊的客户做这个,所以每个请求返回 1 张图片。
-
我不确定我是否理解你所说的。我所拥有的是我正在迭代的图像结果列表。我认为这与 foreach 循环中的返回文件有关。话虽如此,我需要一个解决方案来解决我的问题。
-
你想在这里实现什么?使用
File将返回文件的实际内容。也许您想渲染一个包含图像文件链接的图像列表? -
@HenkMollema 感谢您的来信。我想要实现的是渲染来自 wwwroot 文件夹的图像。在我的数据库中,图像被引用为 img01、img02、img03 等。因此在该方法中,我正在检索所有图像并尝试在浏览器中显示所有图像。希望这是有道理的。
标签: c# image asp.net-core filestream wwwroot