> > Articoli
> > Files e Directory
Upload di file con ASP.net
Una delle operazioni più utilizzate e al contempo tediose da essere sviluppate in ambito Active Server Pages è sicuramente l'upload di file sul server. In classic ASP le soluzioni sono svariate: utilizzare componenti di terze parti, sviluppare un proprio oggetto da richiamare poi tramite lo script ASP o scrivere righe e righe di codice VBScript realizzando una classe che in puro ASP operi l'effettivo upload di un file caricato dal browser dell'utente.
Bene, con ASP.net questo lavoro diviene estremamente semplice. In questo articolo è presentato un esempio di script che esegue proprio l'operazione di caricamento di un file selezionato dal navigatore. Al termine dello script sono presenti due righe di codice aggiuntive che consentono di convertire l'array di byte caricato in una stringa (allo scopo per esempio di manipolare il contenuto del file di cui si è effettuato l'upload) e, eventualmente, di visualizzarne il contenuto sul browser.
Da notare che la definizione del tag <form> è differente da quella tipica (include l'attributo enctype="multipart/form-data") in quanto dobbiamo specificare che è destinata all'upload di file via web.
Il codice, ampiamente commentato, dovrebbe risultare di facile comprensione anche ai meno esperti.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<script runat="server">
void Page_Load(Object sender, EventArgs e){
if( filMyFile.PostedFile != null )
{
// referenzia il file caricato
HttpPostedFile myFile = filMyFile.PostedFile;
// rileva dimensione del file
int nFileLen = myFile.ContentLength;
byte[] myData = new byte[nFileLen];
// leggi il file dallo stream
myFile.InputStream.Read(myData, 0, nFileLen);
// rileva il nome del file e lo associa al path corrente dello script di upload
string strPath = Server.MapPath(Path.GetFileName(myFile.FileName));
// crea un nuovo file
FileStream newFile = new FileStream(strPath, FileMode.Create);
// scrivi il buffer di dati nel file
newFile.Write(myData, 0, myData.Length);
// chiude il file
newFile.Close();
// informa il client che il file è stato caricato correttamente
this.lbResult.Text = "File caricato correttamente";
// manipola il testo contenuto nel file...
string buf = System.Text.Encoding.Default.GetString(myData);
// decommentare la riga seguente se si desidera visualizzare il contenuto del file
//Response.Write(buf);
}
}
</script>
<html>
<head>
<title>Upload di file con ASP.net</title>
</head>
<body>
<form id="Form1" method="post" runat="server" enctype="multipart/form-data">
Upload di file con ASP.net<br /><br />
Seleziona il file dal tuo PC:
<input id="filMyFile" type="file" runat="server" NAME="filMyFile" size="30" class="button">
<br /><br />
<asp:Button id="Button1" runat="server" Text="Importa »"></asp:Button>
<br /><br />
<asp:Label ID="lbResult" Runat="server"></asp:Label>
</form>
</body>
</html>
 |
Copyright © 2001-2012 ASPCode.it
- Riproduzione vietata - v. 3.0
- Capitani Paolo - P.IVA: 03300740408
- Contact
|
 |