C# webaplikacja ASP.NET, Przesyłanie plików na serwer – przykład i tutorial

1. W projekcie tworzysz nowy folder, przykładowo „resources”, tam będą trafiać pliki przesyłane przez aplikację kliencką.

2. Natomiast na stronie aspx umieszczasz następujący kod (opakowany w <form>). Jest to bardzo ważne, aby kod znajdował się w formie z akcją “post” oraz ustawionym atrybutem enctype

<form id=”adminForm” runat=”server” method=”post” name=”adminForm” enctype=”multipart/form-data” >
<input type=file id=File1 name=File1 runat=”server” /><font> (Maksymalny rozmiar pliku: 4 MB)</font>
<br>
<asp:button type=”submit” id=”Submit1″ Text=”Wyślij plik” runat=”server” ToolTip=”Prześlij wskazany plik jako dodatek do szczegółów wydarzenia” onclick=”Submit1_ServerClick” />

3. Następnie do przycisku Submit1 dołączasz następującą akcję w odpowiadającym pliku .cs

protected void Submit1_ServerClick(object sender, System.EventArgs e)
{
TextBox id_tb = (FormView1.FindControl(“idTextBox”) as TextBox);
String id_due_path = id_tb.Text;
System.IO.Directory.CreateDirectory(Server.MapPath(“resources”) + “\\” + id_due_path + “\\”);
if ((File1.PostedFile != null) && (File1.PostedFile.ContentLength > 0))
{
string fn = System.IO.Path.GetFileName(File1.PostedFile.FileName);
string SaveLocation = Server.MapPath(“resources”) + “\\” + id_due_path + “\\” + fn;
try
{
File1.PostedFile.SaveAs(SaveLocation);
Console.WriteLine(“The file has been uploaded.”);
Response.Write(“The file has been uploaded.”);
}
catch (Exception ex)
{
Response.Write(“Error: ” + ex.Message);
Console.WriteLine(“Error: ” + ex.Message);
//Note: Exception.Message returns a detailed message that describes the current exception.
//For security reasons, we do not recommend that you return Exception.Message to end users in
//production environments. It would be better to put a generic error message.
}
}
else
{
Response.Write(“Please select a file to upload.”);
Console.WriteLine(“Please select a file to upload.”);
}
}

4. Violla, można przesyłać pliki na serwer (domyślny limit to 4MB)

Więcej szczegółów tutaj: (świetny artykuł)