Oggi vi spiego come impostare un upload in Asp.NET e C# con un controllo sull'estensione e la dimensione.
Prima di tutto nella pagina aggiungiamo il controllo che ci serve:
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Submit" runat="server" Text="Submit" OnClick="insertFile" />
Si tratta di due controlli:
- un per scegliere quale file caricare
- un pulsante che richiama il metodo insertFile scritto nel code-behind
Fatto ciò andiamo a modificare il file Web.config per impostare la dimensione massima e le estensioni:
<system.web>
<httpRuntime maxRequestLength="10240000" executionTimeout="360"/>
</system.web>
<appSettings>
<add key="audioExt" value="mp3 ogg flac"/>
</appSettings>
httpRuntime determina le modalità di elaborazione di una richiesta.
maxRequestLength determina la dimensione massima espressa in KB.
executionTimeout è il numero massimo di secondi.
Ovviamente cercate di impostare dei valori che corrispondano: è inutile accettare dimensioni grando e impostare un timeput troppo piccolo.
Inolre considerate che questo valore vale per tutti gli eventuali upload: se volete impostare dimendioni diverse (ad esempio per immagini, video e audio) dovete fare un controllo a mano.
appSettings invece contiene le impostazioni personali.
Abbiamo aggiunto una key impostando come valore le nostre estensioni (separate da spazio, ma potete mettere anche un segno, stando attenti ai caratteri speciali).
Possiamo avere anche più key; ad esempio un'altra per le estensioni dei file video.