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)
%>