【发布时间】:2016-06-17 15:09:58
【问题描述】:
我正在使用带有 Microsoft.Owin.StaticFiles 中间件的自托管 Web API 服务器来提供静态文件。配置:
public void Configuration(IAppBuilder appBuilder)
{
// Configure Web API for self-host.
var config = new HttpConfiguration();
//...
appBuilder.UseWebApi(config);
var physicalFileSystem = new PhysicalFileSystem(@".\Public");
Directory.CreateDirectory(physicalFileSystem.Root);
var options = new FileServerOptions
{
FileSystem = physicalFileSystem,
RequestPath = PathString.FromUriComponent("/download")
};
appBuilder.UseFileServer(options);
}
如何在 WebAPI 控制器中获取文件系统设置(或提供文件的路径)?
【问题讨论】:
-
为什么不将路径保存在配置设置中的某个位置并在您的 OWin 配置中使用它呢?无论如何,你的代码中不应该有这些“神奇”的字符串。
-
你不能。这就是 OWin 的要点。静态文件中间件独立于 WebAPI 控制器。相反,您可以让 WebAPI 托管静态文件。只需为具有通配符路径的 StaticFileController 设置路由,然后在控制器中解析路径以创建要返回的 FileStream 对象。
标签: c# asp.net-web-api owin