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:
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'.
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'.