.aspx
<form id="form1" runat="server">
<asp:ToolkitScriptManager
ID="ToolkitScriptManager1"
runat="server"
EnablePartialRendering="true"
/>
<div>
<a href="WebForm3.aspx">Home</a></div>
<div>
<h3>
Upload Files</h3>
<table>
<tr>
<td
colspan="2"
align="left">
<asp:Label ID="lblmessage"
runat="server"
ForeColor="Red"></asp:Label>
</td>
</tr>
<tr>
<td>
Folder
</td>
<td>
<asp:DropDownList ID="ddlfolder"
runat="server">
</asp:DropDownList>
<asp:Button ID="btngo" runat="server"
Text="GO"
OnClick="btngo_Click"
/>
</td>
</tr>
<tr>
<td
colspan="2">
<table
id="tabcreate"
runat="server"
visible="false">
<tr>
<td>
New Folder
Name:
<asp:TextBox ID="txtfoldername"
runat="server"></asp:TextBox>
<asp:Button ID="btncreatefolder"
runat="server"
Text="Create New
Folder" OnClick="btncreatefolder_Click" />
</td>
</tr>
</table>
<table
id="tabselectedfolder"
runat="server"
visible="false">
<tr>
<td>
<asp:Label ID="lblselectedfolder"
runat="server"
ForeColor="Green"></asp:Label>
</td>
</tr>
</table>
</td>
</tr>
<tr id="trselectfiles"
runat="server"
visible="false">
<td>
Select Files
</td>
<td>
</td>
</tr>
</table>
</div>
<div>
<asp:Image ID="loader" runat="server"
ImageUrl="~/ajaxloader2.gif"
Style="display: None" />
<asp:AjaxFileUpload ID="browseup"
runat="server"
padding-bottom="4"
padding-left="2"
Width="300px"
padding-right="1"
padding-top="4"
ThrobberID="myThrobber"
OnUploadComplete="fileok_Click"
MaximumNumberOfFiles="10"
/>
</div>
</form>
.aspx.cs
protected void Page_Load(object sender, EventArgs
e)
{
// check if postback came through AjaxFileUpload control
if (browseup.IsInFileUploadPostBack)
{
// do for ajax file upload partial postback
request
}
else
{
// do for normal page request
if (!IsPostBack)
{
BindDirectoryDropDown();
}
}
}
protected void
fileok_Click(object sender, AjaxFileUploadEventArgs e)
{
var filename = DateTime.Now.Day.ToString()
+ "_" + DateTime.Now.Month.ToString()
+ "_" + DateTime.Now.Year.ToString()
+ DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + "_";
filename += e.FileName;
string path_1 = Server.MapPath("~/Files/");
string selfolder = (string)Session["selfolder"];
if (selfolder != "Select")
{
path_1 += selfolder + "/";
}
var path = Path.Combine(path_1,
filename);
browseup.SaveAs(path);
}
private void BindDirectoryDropDown()
{
DirectoryInfo di = new
DirectoryInfo(Server.MapPath("~/Files/"));
ddlfolder.DataSource = di.GetDirectories();
ddlfolder.DataBind();
//foreach (DirectoryInfo i in di.GetDirectories())
//{
//
ddlfolder.DataTextField = i.Name;
//
ddlfolder.DataValueField = i.FullName;
//}
ddlfolder.Items.Insert(0, new ListItem("-
Select -", "Select"));
ddlfolder.Items.Add(new ListItem("Create New Folder", "-1"));
}
protected void
btncreatefolder_Click(object sender, EventArgs e)
{
//checking for directory exists
if (Directory.Exists(Server.MapPath("~/Files/" + txtfoldername.Text.Trim() +
"")))
{
lblmessage.Text = "Folder Already
Exists.";
}
else
{
//createing new directory
Directory.CreateDirectory(Server.MapPath("~/Files/" + txtfoldername.Text.Trim() +
""));
lblmessage.Text = "New Folder Created
Successfully.";
}
BindDirectoryDropDown();
}
protected void
btngo_Click(object sender, EventArgs e)
{
if (ddlfolder.SelectedValue == "-1")
{
tabcreate.Visible = true;
tabselectedfolder.Visible = false;
}
else if
(ddlfolder.SelectedValue != "Select")
{
tabcreate.Visible = false;
tabselectedfolder.Visible = true;
lblselectedfolder.Text = "Selected
Folder: " + ddlfolder.SelectedValue;
}
else
{
tabcreate.Visible = false;
tabselectedfolder.Visible = true;
lblselectedfolder.Text = "No Folder
Selected.So Files will be uploaded to root folder.";
}
trselectfiles.Visible = true;
Session["selfolder"] =
ddlfolder.SelectedValue;
}
You Can Download the Working Code of From Upload Muliple Files with AJAX File Upload in ASP.Net here.