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:

[sourcecode language=’vb’]

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

[/sourcecode]

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’.