【发布时间】:2021-03-20 02:03:04
【问题描述】:
过去我曾经从 wwwroot 文件夹存储和获取我的文件并将它们显示在视图中,但现在我想将我的所有文件放在不同的文件服务器位置,因为它的大小。下面是旧的实现。
public IActionResult Index ()
{
string[] filePaths = Directory.GetFiles(Path.Combine(this.Environment.WebRootPath, "Audio/"));
List<FileViewModel> files = new List<FileViewModel>();
foreach (string filePath in filePaths)
{
files.Add(new FileViewModel { FileName = Path.GetFileName(filePath) });
}
return View(files);
}
现在我想将所有文件从 wwwroot 移动到另一个网络位置,我需要创建一个虚拟目录并在目录中循环以获取我的文件,但我做不到,我确实阅读了一些在 Asp.net Core 中我们需要在 startup.cs 中有以下代码才能从另一个位置获取文件的文章。
app.UseFileServer(new FileServerOptions
{
FileProvider = new PhysicalFileProvider(@"\\xxx"),
RequestPath = new PathString("/Audio"),
EnableDirectoryBrowsing = true
});
我在上面做了,但不确定如何在我的控制器中使用它来执行我过去使用的相同操作并在视图索引中显示文件。任何帮助,将不胜感激。谢谢
【问题讨论】:
-
嗨@M I,您的虚拟目录在哪里?只需使用与
Directory.GetFiles()中的new PhysicalFileProvider(@"\\xxx")相同的路径即可。 -
对于网络应用程序,我认为不可能访问应用程序文件夹之外的任何其他文件夹。除非用户通过 ui 文件对话框浏览文件。除非它是 Windows 服务或桌面应用程序。
标签: c# asp.net-core