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

Gianluca Grignani FT1DE Siberian Husky rosmetro Nordafricana Benjamin Whitrow mondiali calcio Egitto verdure C4FM FDMA Brye Cooper sintomi Montalcino trattino mitologia Autolycus Physaliidae Alessandra Mastronardi Aidan Turner Rai Movie When We Were Young Yagi-Uda PSP cancella sanitario Alleanza Atlantica Alpha combinato Sognefjord ricetta ballerine Raineri frame rate annunci Gary Ross frigorifero analogici vasca Filosofo Francia raggiera tofu Amateur TeleVision DR Rank pescare Mugnaia Christopher Nolan Quando Sono Lontano rame pneumatico Arisa montagna verona Cecina Kermes vermilio barrato onda gravitazionale Matthew McConaughey TeamViewer Dailymotion avvio Ben Kingsley nichel SimCity 4 Euro Truck Simulator 2 clic orientare mangiare sub audio Guppy vino Dante Alighieri Eugene Levy XLS satellitare Sousse Ethernet Pesce Scorpione noindex cavallo cocciniglie Zitolo elettricit√† Allen Grant D-Star pulcino RF Tomboli Visa Satoshi Nakamoto isotropa John Shrapnel legname Assassin's Creed Licenza Un Attimo Importante RG 213 /U bug database EME gioielleria acciughe Albergo Argento Dante albero Simone Tonini animazione leggi full-duplex mondiali Propulsione Nuvole √ďscar Jaenada raggio guadagno galassia popolarit√† DOUGLAS Combattente giglio candido pepe Christopher Knights Titius-Bode gelicidio sciami MT63 FIGC Flaps poste 8.1 Valeria Golino Farming Simulator piastrellisti Ostro Aleksei Guskov meta tag Campidoglio Rifugio gallo ruspante Aurata Fastweb Donald Sutherland polpette truffe Cassini erbicidi Keplero cappone