And you can choose to stream the file too. Note that we should validate the request and user permissions before finding or generating the requested file. In the end (line 7), we return a FileContentResult object that is created using the method File(byte fileContents, string contentType, string fileDownloadName). In the code above, we first find or generate the requested file from the local file system or a file storage, then read the file content. With the groundwork laid, we can easily write an action method as follows: The File method is very flexible and has a variety of overload methods to instantiate FileContentResult, FileStreamResult, VirtualFileResult, and PhysicalFileResult instances. In other words, no matter which of the four types you use, the client-side will not notice any difference when downloading a file from the API endpoint.Īpart from the constructors for the four concrete types, we can use a method File, provided natively from the ControllerBase class, to return a concrete FileResult object. These four variants don’t differ much, you can use any of them to construct a FileResult object at your convenience. The FileResult type is an abstract type, and it has four concrete implementations: FileContentResult, FileStreamResult, VirtualFileResult, and PhysicalFileResult. But most times we still want to use the generic ActionResult because it covers many other useful return types, such as BadRequest, NoContent, and so on. When we want to return a file response, we can explicitly set the return type for the action method to be FileResult, which is a type inherited from ActionResult. In ASP.NET Core, a Web API action method usually returns an ActionResult object.
Postman download file from api full#
The full solution can be found in my GitHub repository, which includes a web project for uploading/downloading files and an integration test project for testing controller methods. In the final HTML page, end users can left-click a hyperlink to download the file or right-click the link to choose “ Save Link As” in the context menu and save the file.
Postman download file from api how to#
In this article, I will use a demo Web API application in ASP.NET Core to show you how to transmit files through an API endpoint.