如何显示.NET Core应用程序中虚拟目录中存储的图像?

时间:2019-06-18 11:21:35

标签: c# html asp.net iis virtual-directory

我想在.net核心网站上显示图像。图像存储在IIS服务器上的网站文件夹之外。

在互联网上,我读到一种实现此目的的方法是使用一个虚拟目录,然后再对其进行设置。在虚拟目录的配置下面:

Configuration of the virtual directory

我认为,访问保存在虚拟目录指向的文件夹内的图片会很容易,但是直到现在我还是没有成功。

在我的html中,我尝试了以下操作:

<img src="/Uploads/image.jpg" />

<img src="Uploads/image.jpg" />

<img src="../Uploads/image.jpg" />

<img src="./Uploads/image.jpg" />

但没有任何效果。 检查网站时,图片出现404错误。

更新:我向IUSR和IIS_IUSRS的虚拟目录(完全访问)添加了权限

更新:因此,似乎无法按照此博客文章https://www.jauernig-it.de/asp-net-coreiis-serving-content-from-a-file-share/

从.net核心Web应用程序访问虚拟目录。

相反,作者建议在UseFileServer()中使用Startup.cs。但是,我不确定如何将图像上传到文件服务器并显示它们。

3 个答案:

答案 0 :(得分:0)

尝试如下设置图像路径。

<img src="./test/1.jpg"/>

enter image description here

enter image description here

检查是否授予了对图像文件夹的正确权限。

关于, 贾帕(Jalpa)

答案 1 :(得分:0)

因此,事实证明您不能在ASP.NET Core Web应用程序中使用虚拟目录(例如,根据本博客文章,https://www.jauernig-it.de/asp-net-coreiis-serving-content-from-a-file-share/)。 不必配置指向服务器上某个文件夹的虚拟目录,而必须将以下代码添加到ImportError中的Configure()中:

Startup.cs

例如,如果路径指向包含图像image.jpg的文件夹,则可以使用代码中的图像,如下所示:

app.UseFileServer(new FileServerOptions
{
FileProvider = new PhysicalFileProvider(@"\\server\path"),
RequestPath = new PathString("/MyPath"),
EnableDirectoryBrowsing = false
});

答案 2 :(得分:0)

Configure方法内,应用以下代码。

app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new PhysicalFileProvider(
        Path.Combine(env.ContentRootPath, "uploads")),
    RequestPath = "/uploads"
});