ASP.NET - Upload di un file
Quando ripenso a quanto fosse necessario penare con il vecchio ASP 3.0 per effettuare l’upload di un file sul WebServer mi vengono i brividi.
Per fortuna Microsoft ha ascoltato le preghiere dei programmatori disperati e in ASP.NET ha inserito delle classi apposite per l’upload, rendendo il tutto semplice quasi quanto in PHP.
Per prima cosa, e’ necessario un FORM html, nel quale dobbiamo modificare il tag <form> ed impostare un encoding che sarà multipart/form-data.
Questo encoding serve per specificare che durante il submit del form verranno spediti una sequenza di dati chepoi verranno interpretati.
Abbiamo bisogno inoltre di un tag <INPUT> con proprieta’ file: creera’ il pulsante ‘Sfoglia’ sul nostro form, necessario all’apertura della finestra di ricerca file.
Il codice del form sara’ quindi il seguente:
<form id="Upload" enctype="multipart/form-data" method="post" runat="server">
<input type="file" runat="server" id="PostedFile">
<asp:Button Runat="server" ID="Send" Text="Invia" />
</form>
e questo il risultato:
Nel Code-Behind dovremo quindi associare del codice alla pressione del pulsante ‘Invia’:
private void Send_Click(object sender, System.EventArgs e)
{
HttpPostedFile file_sent=PostedFile.PostedFile;
//Rilevazione delle dimensioni del file inviato
int file_size=file_sent.ContentLength;
byte[] dati=new byte[file_size];
//Lettura dal file e riempimento del buffer
file_sent.InputStream.Read(dati, 0, file_size);
string filename = file_sent.FileName;
//Scrittura del File su disco
FileStream fs=new FileStream("C:\\" + Path.GetFileName(filename),FileMode.Create);
fs.Write(dati,0,file_size);
fs.Close();
}