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();
}







Ciao Andrea, ti segnalo Atlas (AJAX per ASP.NET 2.0) sul mio blog… Interessante vero?
http://www.cicoira.it/2006/02/15/atlas-ajax-per-aspnet-20/
Gianpiero
ciao,mi potresti aiutare?sto cercando di permettere ai visitatori del sito di uploadare dei file.il file nn è specifico(ogni utente invierà ciò che vuole)e vorrei mi arrivasse via mail come allegato.il codice da cui parto(e che funziona benissimo)è questo,al quale vorrei appunto aggiungere il codice che permetta l’upload.grazie mille.ciao:
ciao esiste la possibilita di utilizzare un regularexpressionvalidator per controllare (lato client) che il nome di un postedfile non contenga spazi?..preticamente ho un controllo FileUpload e vorrei che all’invio della form pigiando il bottone controlli lato client che il nome del file da “uploadare” non contenga spazi.
grazie per la risposta in anticipo
Il regularexpressionvalidator serve proprio per questo tipo di controlli, basta solo conoscere un po’ di teoria sulle espressioni regolari.
Dai uno sguardo qui:
http://www.aspitalia.com/articoli/asp.net/formattazione.aspx?page=2
ciao!,
sono alle prese anche io con l’upload di file su un server, pero in questo caso devo uploadare file di grossa dimensione, quindi vorrei creare una sorta di status bar per il file upload (che mi indicasse la percentuale di upload in tempo reale)…mi sai dare qualche consiglio?
grazie mlle per l’attenzione.
Simone Muccioli
@simone: puoi utilizzare il componente OpenSource NeatUpload: http://www.brettle.com/neatupload
[...] upload di files con progress bar 20 02 2008 Domanda di un lettore nei commenti del post sull’upload di files in asp.net: simone (14:44:58) ciao!, sono alle prese anche io con l’upload di file su un server, pero in [...]
ciao,sto cercando in metodo per permettere ai miei visitatori di farmi inviare file di qualsiasi tipo e che magari mi arrivi come allegato in posta oppure direttamente uplodato su un altro server… come posso fare? Mi potreste contattare via posta cortesemente? Grazie in anticipo