ASP.NET: upload di foto con creazione di thumbnails



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 &amp; "-" &amp; System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName)
Dim SaveLocation As String = Server.MapPath("foto") &amp; "\\\\" &amp; 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") &amp; "\\\\thumbs\\\\" &amp; fn, System.Drawing.Imaging.ImageFormat.Jpeg)

'Codice per eventuale insert in database

Catch Exc As Exception
Response.Write("Error: " &amp; 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'.

Published: September 29 2007

  • category: