Upload and Download Files (Image) in ASP.net


 Here is the .aspx page UI part, please register Ajax toolkit if you don’t want to be post back...Otherwise you can remove below Script Manage and their respective...

<form id="form1" runat="server">
    <asp:ScriptManager ID="scriptManager" runat="server">asp:ScriptManager>
      
    <div>
     <asp:UpdateProgress ID="updateprogress1" runat="server" DisplayAfter="2000">
     <ProgressTemplate>
         An upload is in progress ...
     ProgressTemplate>
 asp:UpdateProgress>

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
     <ContentTemplate>
      Choose File..<asp:FileUpload ID="fuImage" runat="server" /> 
         <asp:Label ID="lblMessage" runat="server">asp:Label>
     ContentTemplate>
     <Triggers>
         <asp:PostBackTrigger ControlID="btnUpload" />
     Triggers>
 asp:UpdatePanel>
    <asp:Button ID="btnUpload" runat="server" Text="Upload" onclick="btnUpload_Click" />
    div>
   
    <div>Download the files<br />
    <asp:DropDownList ID="ddlUploadedFiles" runat="server">
    asp:DropDownList><br />
   
    <asp:Button ID="btnDownload" runat="server" Text="Download"
            onclick="btnDownload_Click" />
    div>
    form>




Write down the below code in .aspx.cs page

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.IO;

public partial class FileUpload : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //bind uploaded files from upload directory in DropDownList
            BindUploadedFiles();
        }
    }

// upload button click event

    protected void btnUpload_Click(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(3000);

        if (fuImage.HasFile)
        {
            try
            {
                fuImage.SaveAs(Server.MapPath("~/Upload/" + fuImage.FileName));
                lblMessage.Text = "File uploaded successfully!";
            }
            catch (Exception ex)
            {
                lblMessage.Text = ex.Message;
            }
        }
    }



  // bind uploaded files in dropdown list..

  protected void BindUploadedFiles()
    {
        DirectoryInfo di = new DirectoryInfo(Server.MapPath("~/Upload/"));

        FileInfo[] fi = di.GetFiles("*", SearchOption.AllDirectories);

        foreach (FileInfo fileExistInDir in fi)
        {
            ddlUploadedFiles.Items.Add(fileExistInDir.Name);
        }
    }

// button download click event..

    protected void btnDownload_Click(object sender, EventArgs e)
    {
       
        foreach (ListItem selFile in ddlUploadedFiles.Items)
        {
            if (ddlUploadedFiles.SelectedIndex >=0)
            {
                string filePath = Server.MapPath("~/upload/" + ddlUploadedFiles.SelectedValue);
                string fileName = Path.GetFileName(filePath);
                Response.Clear();
                Response.ContentType = "application/jpg";
                Response.AddHeader("Content-Disposition", "attachment; filename=\"" + Path.GetFileName(filePath) + "\"");
                Response.TransmitFile(filePath);
                Response.End();
            }
        }
    }
}

Please feel free to comment/ feedback..

Comments