我的ASP上有以下文件夹结构:.NET核心服务器(.NET5.0):
- wwwroot MyXmlFiles foo.xml
这些文件可以作为静态文件访问,如https://myserver.com/MyXmlFiles/foo.xml。但是,我想通过WebApi控制器动作使文件可用:
[HttpGet("{uri}")]
public string Get(string uri)
{
// How do I return the foo.xml file content here
// without redirection or loading it to memory?
}
可以从磁盘读取文件的内容并从控制器返回:
[HttpGet("{uri}")]
public IActionResult Get(string uri)
{
var path = GetPathFromUri(uri);
using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
return new FileStreamResult(stream, "text/xml")
}
}
您必须编写GetPathFromUri
方法,将uri转换为物理路径(例如"MyXmlFiles/foo.xml")->"wwwroot MyXmlFiles foo.xml")