web.c

Mattepuffo's logo
Upload in Asp.NET e C#

Upload in Asp.NET e C#

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.

Mattepuffo's logo
Sostituire valori GridView e DropDownList con voci Web.config

Sostituire valori GridView e DropDownList con voci Web.config

Lo scenario è questo: ho una GridView e una DropDownList che prendo dei valori da una tabella che ha solo valori numerici (2, 4, 6, ecc), dove ogni valore corrisponde a uno stato (pausa, da trasferire, ecc).

Gli stati non salvati da nessuna parte e io devo rappresentare gli stati al posto del valore perchè ovviamente più leggibili.

Ovviamente non posso modificare il database (sarebbe stato troppo facile).

I modi sono:

  • usare una query che ogni volta trasforma il numero in stato
  • cambiare i valori prendendoli da quelli impostati a mano nel Web.config

La prima strada è più facile ma ha degli svantaggi: se vengono cambiati gli stati devi cambiare la query; inoltre la query è anche più lenta.

Quindi ho proceduto col secondo metodo, e vi spigherò come ho fatto.

Prima di tutto dobbiamo aggiungere i nostri valori nel Web.config (il file di configurazione dei siti Asp.NET):

<appSettings>
<add key="0" value="DA PROCESSARE"/>
<add key="1" value="1 NON LO SO"/>
<add key="2" value="TRASFERITO"/>
<add key="3" value="ERRORE"/>
<add key="4" value="TRASFERITO"/>
<add key="6" value="6 NON LO SO"/>
<add key="7" value="7 NON LO SO"/>
<add key="30" value="PAUSA"/>
</appSettings>

Qui decidiamo ogni numero a che stato corrisponde.