Introduction

This is very basic level small user control, in which we can discuss how to create web user control.

To create user controls follow the steps.

  1. Right click on project
  2. Click on Add
  3. Select New Item
  4. Select Web User Control
  5. Specify some Name

I have given name to this file as "uploader.ascx" and kept this file under "userControl" for simplicity purpose.

On this pageI am having following controls.

At the code behind of above fileI am having following function.

public string UploadFile(string fileName, string folderName)
{
    if (string.IsNullOrEmpty(fileName))
    {
        return "Invalid filename supplied";
    }

    if (fileUpload.PostedFile.ContentLength == 0)
    {
        return "Invalid file content";
    }

    fileName = System.IO.Path.GetFileName(fileName);

    if (string.IsNullOrEmpty(folderName))
    {
        return "Path not found";
    }

    try
    {
        if (fileUpload.PostedFile.ContentLength <= 2048000)
        {
            fileUpload.PostedFile.SaveAs(Server.MapPath(folderName) + "\\" + fileName);
            return "File uploaded successfully";
        }
        else
        {
            return "Unable to upload, file exceeds maximum limit";
        }
    }
    catch (UnauthorizedAccessException ex)
    {
        return ex.Message + " Permission to upload file denied";
    }
}

The above function takes care of following things before uploading file to the folder.

  1. Invalid file name supplied.
  2. If file not exists or content length 0.
  3. Folder name exists.

Error Handling in File Uploading

While uploading done with UnauthorizedAccessException and returned with the message.

On upload button click I am having following code.

private void btnSave_Click(object sender, EventArgs e)
{
    string strFilename, strMessage;

    strFilename = fileUpload.PostedFile.FileName.ToString();
    strMessage = UploadFile(strFilename, ConfigurationSettings.AppSettings["folderPath"]);

    lblMessage.Text = strMessage;
    lblMessage.ForeColor = Color.Red;
}

I have made use of Web.config file, in whichI have added attribute as follows under.

<configuration> <appSettings> <add key="folderPath" value="Images"></add> </appSettings>

i.e.I have set uppath of folder to upload image.

To access control in project, I have added page called as "uploadTester.aspx" to the project in whichI have added following line.

<%@ Register TagPrefix="img" TagName="Uploader" src="userControl/uploader.ascx"%>

Which says that this control is register to this page with specified source.

And inHTML code I have added following code inside form tag

<img:Uploader runat="server" id="Uploader1"></img:Uploader>

That's all about.

How to Set permission to virtual directory

To upload any of the file in respective folder user need to have permission for writing to the folder so please follow the following steps to prevent from the error.

This will set right permission to entire virtual directory, this way we can minimize error from the front end for permission / access denied.

Other way to solve permission denied issue is to go to actual folder "images" by using physical path and follow these steps.

If u are using this code on 2000 server you should do following

Kindly go through zip file for entire code.