Oggi vi propongo un piccolo frammento di codice in vb.net che permette di effettuare da una pagina aspx l’upload di una foto e la creazione del relativo thumbnail.
Per prima cosa, inseriamo sulla pagina un controllo FileUpload e un pulsante che darà il via al processo di upload:
<asp:FileUpload ID=”FileUpload1″ runat=”server” />
<asp:Button ID=”Button1″ runat=”server” Text=”Carica Immagine” />
in seguito nel CodeBehind relativo al click sul pulsante realizziamo l’upload e la creazione del ThumbNail:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
If Not FileUpload1.PostedFile Is Nothing And FileUpload1.PostedFile.ContentLength > 0 Then
Dim unixtime As String
unixtime = (DateTime.UtcNow - New DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds
unixtime = unixtime.Replace(",", "")
'Dim fn As String = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName)
Dim fn As String = unixtime & "-" & System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName)
Dim SaveLocation As String = Server.MapPath("foto") & "\\\\" & fn
Try
FileUpload1.PostedFile.SaveAs(SaveLocation)
'Creazione Miniatura
Dim img As System.Drawing.Bitmap
Dim imgNew As System.Drawing.Image
Dim inp As New IntPtr()
img = img.FromFile(SaveLocation)
imgNew = img.GetThumbnailImage(100, 62, Nothing, inp)
imgNew.Save(Server.MapPath("foto") & "\\\\thumbs\\\\" & fn, System.Drawing.Imaging.ImageFormat.Jpeg)
'Codice per eventuale insert in database
Catch Exc As Exception
Response.Write("Error: " & Exc.Message)
End Try
Else
Response.Write("Please select a file to upload.")
End If
End Sub
Finito! La foto originale verrà caricata nella drectory ‘foto’, mentre la miniatura realizzata utilizzando il metodo GetThumbnailImage (grazie a Gianpiero per l’esaustivo tutorial sull’utilizzo) verrà creata in ‘foto/thumbs’.







Grazie 1000! questo script mi è stato molto utile!
unico problema che ho riscontrato è che se provo a cancellare i file contenuti nella cartella “foto” mi danno un errore tipo: “file utilizzato da un altro processo”. Cosa può essere? come posso “liberare le risorse”?
Grazie
Davide.
Anche io ho il problema di immagini “bloccate”.
Ho dovuto fare una procedura nella pagina di redirect, da lì funziona.
Ciao