9 c# asp.net-core asp.net-core-webapi asp.net-core-3.0 asp.net-core-3.1
我正在尝试使用 ASP.NET core 3.1 构建一个 Web API 端点,这将允许应用程序向我发送一个 id,并且响应将与相应的文件一起发送。
这是我的方法
[HttpGet("get")]
public IActionResult Get(Guid id)
{
FoundFileInfo file = PathFinder.Get(id);
if(file == null || !System.IO.File.Exists(file.Fullname))
{
return NotFound();
}
return File(file.Fullname, "image/jpeg");
}
Run Code Online (Sandbox Code Playgroud)
使用相同的代码,我可以返回File(file.VirtualName, "image/jpeg")
, new PhysicalFileResult(filename, "image/jpeg")
, 或PhysicalFile(filename, "image/jpeg")
。但是它们之间有什么区别,每个的正确用例是什么?
我的最终目标是允许消费者根据端点的响应构造一个IFileInfo实例。不知何故,我想为消费者提供足够的信息,例如LastModified
, Length
, Name
, PhysicalPath
。哪种方法适合我的案例?
Wik*_*hla 10
.NET CoreFile
仅处理虚拟路径(相对于您的网站)。该PhysicalFile
手柄物理(绝对)文件路径。
PhysicalFile
只是一个返回PhysicalFileResult
. 但是您可以使用new PhysicalFileResult
.
我认为没有其他区别,选择主要取决于您如何获得要返回的文件的位置。如果您同时拥有虚拟位置和物理位置,则可以选择两者中的任何一个(File
或PhysicalFile
)。
归档时间: |
|
查看次数: |
3368 次 |
最近记录: |