FileContentResult和FileStreamResult的区别我正在编辑一些代码,有一个返回FileContentResult类型的方法。我从服务中获取流,因此将返回类型更改为FileStreamResult对我来说会更方便。我应该将流转换为数组以返回FileContentResult吗?或者我可以安全地更改返回类型吗?FileResult是所有其他类的抽象基类。FileStreamResult和FileContentResult都继承自ActionResult,继承自FileResult。因此,您可以从将ActionResult作为返回类型的方法返回一个类型如果您已经有一个流,则可以使用FileStreamResult构造函数返回FileResultpublicActionResultDownload(){varf=Server.MapPath("~/Content/mypdf.pdf");varfileStream=newFileStream(f,FileMode.Open,FileAccess.Read);返回新的FileStreamResult(fileStream,MimeMapping.GetMimeMapping(f));如果你已经有一个字节数组,你可以使用FileContentResult构造函数返回FileResultpublicActionResultDownload(){varf=Server.MapPath("~/Content/mypdf.pdf");varbytes=System.IO.File.ReadAllBytes(f);返回新的FileContentResult(字节,MimeMapping.GetMimeMapping(f));}Controller.File方法具有接受字节数组或流的重载publicActionResultDownload(){varf=Server.MapPath("~/Content/mypdf.pdf");varbytes=System.IO。文件.ReadAllBytes(f);返回文件(字节,MimeMapping.GetMimeMapping(f));}publicActionResultDownload2(){varf=Server.MapPath("~/Content/mypdf.pdf");varfileStream=newFileStream(f,FileMode.Open,FileAccess.Read);返回文件(fileStream,MimeMapping。GetMimeM申请(f));}如果浏览器支持显示response的内容类型,就会在浏览器中显示response例如上面的代码,会在浏览器中显示pdf内容。File方法的另一个重载获取浏览器的保存/下载对话框将使用的下载文件名,以便用户可以将其保存到本地计算机和/或打开它。publicActionResultDownload4(){varf=Server.MapPath("~/Content/mypdf.pdf");varfileStream=newFileStream(f,FileMode.Open,FileAccess.Read);返回文件(fileStream,MimeMapping.GetMimeMapping(f),“MyfileNiceFileName.pdf”);这样,用户将从浏览器中获得下载提示。以上就是C#学习教程的全部内容:FileContentResult和FileStreamResult的区别。侵权请点击右侧联系管理员删除。如需转载请注明出处:
