ASP.NET has four different types of file results:
Those descriptions are take from MSDN and with the exception of the FileStreamResult the first three sound identical. So what is the difference between them?
FileResult
is an abstract base class for all the others.
FileContentResult
- you use it when you have a byte array you would like to return as a fileFilePathResult
- when you have a file on disk and would like to return its content (you give a path)FileStreamResult
- you have a stream open, you want to return its content as a fileHowever, you'll rarely have to use these classes - you can just use one of Controller.File
overloads and let ASP.NET MVC do the magic for you.