Search code examples
c#asp.netfile-uploadhttp-post

ASP.NET File Upload


I am trying to make a server page (C#, asp.net 2.0+) to save an uploaded file from another page.

Specifically, I have an HTML page with a

<form action="upload.aspx"> 

and I can't figure out how to handle saving the file on the server in upload.aspx.

I found a few examples (one being: http://msdn.microsoft.com/en-us/library/aa479405.aspx) but that requires the <input type=file> element to be on the same page.

I am having difficulties with grabbing the posted file on my upload.aspx page.

Anyone have any pointers? How can I grab a posted file in aspx and save it to the server when the file is posted from another page?

Many thanks, Brett


Solution

  • 1.Create Uploadfile.aspx, code as below:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Uploadfile.aspx.cs" Inherits="Uploadfile" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>File Upload Control</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:FileUpload  runat="server" ID="fuSample" />
        <asp:Button  runat="server" ID="btnUpload" Text="Upload"
                onclick="btnUpload_Click" />
                <asp:Label runat="server" ID="lblMessage" Text=""></asp:Label>
        </div>
        </form>
    </body>
    </html>
    

    2.create Uploadfile.aspx.cs, code as below:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    public partial class Uploadfile : System.Web.UI.Page
    {
      protected void Page_Load(object sender, EventArgs e)
      {
      }
      protected void btnUpload_Click(object sender, EventArgs e)
      {
        //Files is folder Name, make sure it exists
        fuSample.SaveAs(Server.MapPath("/Files") + "//" + fuSample.FileName);
        lblMessage.Text = "File Successfully Uploaded";
      }
    }
    

    3.create a new file: demo.html, code shown as below, (embed the Uploadfile.aspx in Your Html page using iframe)

    <h3>Demo</h3>
    <iframe height="40" width="700" src="Uploadfile.aspx">
    </iframe>
    

    4.visit /demo.html, now you can be able to upload your file from html itself,by using UploadFiles.aspx

    enter image description here