krishb591993
krishb591993

Reputation: 303

Restrict the size of file upload in asp.net

I want to restrict my file size upload to a certain limit. But, the problem here is that I want to provide a popup alert when the upload size is exceeded . But , instead the web page here shows the following error

HTTP Error 404.13 - Not Found

The request filtering module is configured to deny a request that exceeds the request content length. Here's my code

 protected void Button1_Click(object sender, EventArgs e)
{
    if (fuDocpath.HasFiles)
    {
        try
        {
            DateTime now = DateTime.Now;
            lbldateStamp.Text = now.ToString("mm_dd_yyyy_hh_mm_ss");
            //string foldername = lblsessionID.Text + "_" + lbldateStamp.Text;
            string folderpath = (Server.MapPath("~/Uploaded_Files/") + lblsessionID.Text + "_" + lbldateStamp.Text + "/");
            Directory.CreateDirectory(folderpath);
            if (fuDocpath.PostedFile.ContentLength < 20970000)
            {
                try
                {
                    foreach (HttpPostedFile files in fuDocpath.PostedFiles)
                    {
                        string filename = Path.GetFileName(files.FileName);
                        string folderpath1 = folderpath + "/";
                        fuDocpath.SaveAs(folderpath1 + filename);
                        lblName.Text = lblName.Text + "|" + filename;
                        lblerror.Text = string.Empty;
                    }
                }
                catch (Exception eex)
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + eex.Message + "')", true);
                }

            }
        }
        catch (Exception ex)
        {
            lblerror.Text = "File couldn't be uploaded." + ex.Message;
            lblName.Text = string.Empty;
        }
    }
}

Upvotes: 5

Views: 19694

Answers (2)

Wilbur Omae
Wilbur Omae

Reputation: 314

Just in case you're wondering about the nature of the error code/message thrown by the browser, here is a post that addresses it. I'll quote a paragraph just in case of broken links in future:

By default, ASP.NET only permits files that are 4,096 kilobytes (KB) (or 4 MB) or less to be uploaded to the Web server. To upload larger files, you must change the maxRequestLength parameter of the section in the Web.config file.

Note When the maxRequestLength attribute is set in the Machine.config file and then a request is posted (for example, a file upload) that exceeds the value of maxRequestLength, a custom error page cannot be displayed. Instead, Microsoft Internet Explorer will display a "Cannot find server or DNS" error message.

The workaround is to modify the Machine.config file as explained in the answer given earlier by @sh1rts.

Upvotes: 1

sh1rts
sh1rts

Reputation: 1874

Look at this - How to increase the max upload file size in ASP.NET?

You can change the max request size in web.config - the default is 4Mb

Upvotes: 6

Related Questions