Verificare le dimensioni di un file sul server

Spesso un webmaster realizza interfaccie che permettano ai suoi utenti di effettuare l'upload di file sul server, come immagini (classico esempio nei circuiti banner), file da allegare a newsletter, ecc. Onde evitare un abuso di questo tipo di servizio è però bene controllare la dimensione dei file caricati sul server.
Il seguente script illustra come rilevare la dimensione in Kb di un qualunque file residente sul nostro server:

<%
Function GetFileSize(filepath)
  Dim fso, f
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFile(filepath)
  Response.Write("La dimensione del file è: ")
  Response.Write(FormatNumber(f.Size/1024, 2)&" Kb")
  Set f = nothing
  Set fso = nothing
End Function

Dim fname, fpath
fname = "myfile.gif"  'nome del file da controllare
fpath = Server.MapPath(fname)
GetFileSize(fpath)
%>

Vediamo ora un ulteriore sviluppo di questa funzione; se la dimensione del file supererà il limite passato come parametro, il file stesso verrà eliminato.

<%
Function CheckFileSize(filepath, sizelimit)
  Dim fso, f
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFile(filepath)
  fsize = CInt(f.Size/1024)
  If fsize>sizelimit Then
    fso.DeleteFile(filepath)
    Response.Write("La dimensione del file ("&fsize&" Kb) supera il limite massimo di "&sizelimit&" Kb. Il file è stato eliminato.")
  Else
    Response.Write("La dimensione del file ("&fsize&" Kb) non supera il limite massimo.")
  End If
  Set f = nothing
  Set fso = nothing
End Function

Dim fname, fpath, slimit
fname = "myfile.gif"  'nome del file da controllare
fpath = Server.MapPath(fname)
slimit = 15  'limite dimensione consentito
Call CheckFileSize(fpath, slimit)
%>


Tags cloud

Carta radioamatoriale ibrido galaverna Carciofi mattonelle Monarchia trattino Servizio Elettrico Edward Whymper Spike sodio online OGGETTI tigullio banda autocostruzione Freud digitale romana Pecora Scalari Single Side Band termostato Revelations remoto pinne Staphylococcus aureus gallo ruspante michela palmieri nord username NO-ip carte browser vegetazione Philip Seymour Hoffman Peter Webber radioattivo banda VHF 8920101 induttanza Sola annunci TVOR shoes religioso Samm Levine XLSX benzina vento Dentifricio Grammo 1420 Mackenzie Foy barlow Elica Cartagine Obama Scorpena Volante caffarelli carta lunare Gabriele Salvatores Valpolicella ampere grandangolare ciclismo windows conflitto rete 4 open signal Perugia nano trace automobile corrente elettrica Motore Marino Hytera Oli essenziali giglio candido farina spettacolo Valentino Picone tegame lavatrice massa Premium Bronzo link POLMAR Luca Miniero frutta secca 443 Simulator reggicalze Deposito esterno UMTS geostazionari Triesnecker Ostia Goffredo Mameli pompa aperto isolante politico turbogas vittoria Hyphessobrycon Maestrale boiler circolare residenza ITU notepad costellazioni livella vino bianco temperatura raggiera QRZ magnitudo ponti ripetitori Chott Djerid Android comete Shift Access Point pulcino Firenze bamb√Ļ Coridoras Satellite cappelle litio celacantiformi pipistrelli Popigai energia elettrica sogno Diluvio universale rucola Albert Brooks Robert De Niro Windows 8 VH1 Frequency Modulation Galileo Cairo velocit√† della luce Christian De Sica