如何为API的File ActionResult传递文件大小属性?
你可以通过手动添加Content-Length HTTP响应头的方式,把文件大小传递给客户端——这是HTTP标准规定的用于告知资源大小的头字段,客户端会自动识别该字段获取文件大小。
具体实现很简单,在返回File结果前,往当前请求的响应头里添加这个字段即可:
public IActionResult DownloadFile(...) { string contentType = ..; string fileName = ..; DateTimeOffset? lastModified = ...; long fileSize = ...; // File size in bytes // 手动设置文件大小响应头 Response.Headers.ContentLength = fileSize; return File(memory, contentType, fileName, lastModified, null); }
需要注意:如果你的memory是MemoryStream,确保在返回前已经将其Position重置为0,否则可能导致文件内容传输异常。
这种方式不依赖特定的File方法重载,不管使用哪个版本的File返回结果,都能通过手动添加响应头的方式传递文件大小信息。
内容的提问来源于stack exchange,提问作者Shahar Shokrani
相关产品推荐
相关产品推荐

