Guide

Gestire gli Upload di File in ASP

Quando si realizza una pagina di caricamento file (upload) in ASP, intervengono diversi fattori che determinano il successo o meno del caricamento, in particolare, con file piuttosto grandi, è possibile avere dei problemi che possono dipendere dal fatto che, passato un determinato periodo di tempo, lo script ASP va in timeout prima che il file sia stato caricato completamente sul server Web, oppure, un altro fattore che entra in gioco è la dimensione massima del file che può essere caricato su un server Web.

Per quanto riguarda la regolazione del timeout dello script, è possibile utilizzare la proprietà Server.ScriptTimeout, che indica il tempo massimo – espresso in secondi – a disposizione dello script per la sua completa esecuzione, secondo questa forma:

Server.ScriptTimeout = 300

Con l’esempio indicato, uno script andrà in timeout dopo 300 secondi, ossia dopo 5 minuti.

La dimensione massima caricabile su un server Web IIS 6.0 su Windows Server 2003 invece va regolata editando il file c:\windows\system32\inetsrv\metabase.xml e impostando il valore del parametro “AspMaxRequestEntityAllowed”, che assume il valore predefinito di 204800 byte (200Kbyte), alla dimensione desiderata, espressa sempre in byte. L’editing diretto di questo file però non è consentito se IIS è attivo, ma comunque è possibile modificare questo valore tramite l’esecuzione di uno script VBS in grado di variare questo parametro, seguendo questa sintassi:

cscript adsutil.vbs set w3svc/ASPMaxRequestEntityAllowed dimensione

dove al posto di dimensione va indicata la massima dimensione in byte consentita per i file caricati tramite upload. Fatta questa modifica va riavviato il servizio iisadmin tramite la console di gestione dei servizi di Windows Server oppure tramite il comando iisreset. Fatta questa operazione, la modifica è attiva ed è operativo il nuovo limite di caricamento file sul server.