di: Angelo Ranucci 18 Aprile 2006
Per fare l'upload di file sul server, ASP.NET 2.0 mette a disposizione il controllo FileUpload. Fare l'upload di file sul server significa portare un file presente sul nostro personal computer, o su un qualsiasi supporto di memorizzazione dati, sul server dove risiede fisicamente il sito.
Ragionando per esempi, possiamo pensare ad un sito in cui si vendono dei prodotti. L'amministratore del sito, quando vende un prodotto, ha la necessità di inserire un nuovo prodotto al posto di quello venduto e deve quindi mettere la nuova immagine.
Il controllo FileUpload di ASP.NET 2.0, presente sul Visual Web Developer (VWD) nella Standard Toolbox, è costituito da un TextBox vuoto e da un Button per fare la ricerca del file in locale. Occorre poi mettere un altro Button per sottomettere, o lanciare, l'evento che provoca il prelevamento del file, o meglio, la copia, dalla sua posizione, ed il salvataggio dello stesso nella posizione specificata.
Figura 1. Controllo "FileUpload" nella barra degli strumenti
Apriamo un nuovo progetto e chiamiamolo Articolo01. In Design view della Default.aspx, trasciniamo i controlli FileUpload e Button. Possiamo specificare le Properties nel seguente modo:
Listato 1. Definire i controlli FileUpload e Button
<asp:FileUpload id="FileUpload1" runat="server"
ToolTip="Upload di file sul server" Width="240px" />
<br />
<asp:Button id="ButtonInvio" runat="server" Text="Invio" Width="240px" />
In Design view vediamo:
Figura 2. Componenti visualizzati nell'area di design
Aggiungiamo una nuova cartella al nostro progetto. Al solito con un click destro del mouse sul nome del progetto, scegliamo Add Folder>Regular Folder:
Figura 3. Aggiungere una cartella al progetto
Chiamiamo la nuova cartella "FileCaricati". Questa cartella servirà per metterci dentro i file che caricheremo sul server, cioè i file di cui faremo l'upload.
Con un doppio click sul Button Invio, il VWD ci conduce al codice interno al gestore dell'evento che viene lanciato clickando sul pulsante.
Dobbiamo ora implementare questo metodo. Per prima cosa dobbiamo ottenere il path della cartella principale dell'applicazione. Lo possiamo fare utilizzando Request.PhysicalApplicationPath(). In figura possiamo vedere il resto del codice, scritto al solito in C# e ben commentato:
Listato 2. Codice del delegato per il click sul bottone
protected void ButtonInvio_Click(object sender, EventArgs e)
{
// otteniamo il path della cartella
// principale dell'applicazione
string filePath = Request.PhysicalApplicationPath;
// aggiungiamo il nome della nostra cartella al path
filePath += "FileCaricati/";
// controlliamo se il controllo FileUpload1
// contiene un file da caricare
if (FileUpload1.HasFile)
{
// se si, aggiorniamo il path del file
filePath += FileUpload1.FileName;
// salviamo il file nel percorso calcolato
FileUpload1.SaveAs(filePath);
// mandiamo un messaggio all'utente
Response.Write("File caricato!");
}
else
{
Response.Write("Il file non è stato caricato!");
}
}
Guida Windows Azure Code SnippetsLe migliori pratiche per far girare le applicazioni "in the cloud",... |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Amministratore di Reti Windows Server 200820 Febbraio 2012 a Milano |
|
Nessun corso previsto |