Asp File Download Example

13 May 2010CPOL

ASP.NET Download File. ASP.NET provides implicit object Response and its methods to download file from the server. We can use these methods in our application to add a feature of downloading file from the server to the local machine. Here we see a method to download a file in ASP.NET. Here we see a method to download a file in ASP.NET. C# Corner Q3, 2019 MVPs Announced. Why Join Become a member Login. In the example above, we're downloading a.pdf file. Here are some of the most common content types:.htm.

This article introduces an example ASP.NET MVC web project to upload and download files.
Asp file download example online

Introduction

This article introduces an example ASP.NET MVC web project to upload and download files.

Background

This is a short article to introduce an example ASP.NET MVC web project to upload and download files. If you need to know how ASP.NET MVC works, you can refer to one of my earlier articles 'A Simple Tutorial on Developing ASP.Net Applications in MVC Pattern'. This project is developed in Visual Studio 2008.

The Project in the Solution Explorer

Asp.net File Download Example

The important files in this example project are shown in the solution explorer:

We will first take a look at the application configuration information added to the 'Web.config' file in the root folder. After that, we will look at a small utility class, and we will then look into the models, the views, and the controllers of this ASP.NET MVC project.

The Web Application's Configuration

File

Mvc 4 Project Examples Download

This web project has two 'web.config' files. The one in the 'Views' folder is MVC specific. It is used to block direct access to the 'aspx' views implemented in the 'Views' folder. The application's configuration information should be written in the 'Web.config' file in the root folder. The configuration information added to the application is the following:

In the configuration information, the 'DeploymentVirtualDirectory' needs to be set as an empty string at development time. But the correct virtual directory name will needed at the deployment time. The application will use the configuration information through one of the model classes 'ApplicationSettings' implemented in the 'ApplicationSettings.cs' file in the 'Models' folder.

This is a thread safe singleton class to read configuration information from the 'Web.config' file. The application can access the application configuration information by the public properties of this class.

A Utility Class

In order to make further development easier, a static utility class 'ApplicationUtility' is implemented in the 'ApplicationUtility.cs' file in the 'Utilities' folder.

The class exposes three public methods to format the URLs. Two of them are used to create the link to the CSS file and the link to the jQuery script library. To format the URLs, the correct virtual directory name needs to be configured in the 'Web.config' file in the root directory. At development time, this value need to be an empty string.

The Model

The class 'ExistingFilesModel' implemented in the 'ExistingFiles.cs' file in the 'Models' folder represents the MVC application's model.

This class stores the application's data, which is a list of uploaded files in a 'DataTable'. It also exposes public methods to add a file, delete a file, and retrieve the list of the files. An instance of this class will be saved in the application's web session.

The View

An ASP.NET MVC application will use a master page by default. For simplicity, this application chooses not to use one. The 'FileUpload.aspx' view implemented in the 'ViewsFileUploadExample' folder is the major functional view for this application.

The code behind file for this view is implemented as the following:

There is a hot discussion on whether we should use code-behind files for the views. If we do not use the code-behind files, we will need to use in-line server scripts in the views. Regardless of whether the code-behind files are used, application data in the model classes should never be modified in the views to better conform to the MVC methodology.

Example

The Controller

The controller for this simple application is implemented in the 'FileUploadExampleController' class in the 'FileUploadExampleController.cs' file in the 'Controllers' folder.

This controller class performs the following tasks:

  • Retrieve the uploaded files from the web session
  • Save a new file
  • Delete an existing file
  • Send the file data to the web browser for download

If an error is encountered when working on the tasks, the action methods will choose the view 'Error.aspx' implemented in the 'ViewShared' folder to display the error message to the user.

Classic Asp File Download Example

Run the Application

Now we completed the development of this example application. With the Visual Studio in focus, we can press 'F5' to debug run the application. Click on the 'Click to upload a new file' link, the application will display the file upload control to allow the user to browse a file to upload to the server. After uploading several image files, the application looks like the following:

Click the 'Delete this file' link, you can delete the selected file. Click on the 'ID' of the file, the image will be displayed in a pop-up window:

Click on the 'Download this file' link, you will be allowed to download the chosen file:

Asp.net File Upload And Download Example

Click the 'Open' button, the image file will be downloaded and shown as the following:

Asp File Download Example Software

Points of Interest

Asp.net File Download Example C#

  • There are many ways to upload and download files to and from the web server. This article simply shows how it is done in an ASP.NET MVC application in one of the MVC controllers.
  • There is a hot discussion on whether we should use code-behind files for the views in ASP.NET MVC applications. If we do not use the code-behind files, we will need to use in-line server scripts in the views.
  • The files uploaded to the server are saved in a 'DataTable' in the web session, so Visual Studio is the only thing needed to develop and debug the application. In any practical web applications, persistent data storage is needed to save the files.
  • For demonstration purposes, the file upload and download functionalities are built into a standalone web application, in more comprehensive IT applications, these functionalities are more likely built in a sub-system of a bigger application.
  • In order to program the client side JavaScript program easier, the jQuery library is used. With the help of the jQuery library, browser compatibility issue is no longer a major concern. I have tested this application in 'Internet Explorer', 'FireFox', and 'Google Chrome'. The application functions well in all the three major browsers.
  • This application uses the utility class 'ApplicationUtility' to address the 'relative path problem' related to the ASP.NET MVC applications. The 'FormatURL' method is to use the 'DeploymentVirtualDirectory' information configured in the 'Web.config' file to make sure the correct URLs are generated regardless of where the application is deployed. When debug run the application, the 'DeploymentVirtualDirectory' needs to be an empty string. At deployment time, the correct virtual directory name needs to be written into the 'Web.config' file.

Asp File Download Example Free

History

Download File C# Mvc

This is the first revision of this article.

Comments are closed.