29. juli 2006 - 00:36Der er
6 kommentarer og 1 løsning
hvorfor gemmer den ikke?
Jeg er ny i .net Men har fundet en stump kode som jeg forsøger at tilpasse. Jeg klader siden:ASPNetThumb.aspx?Image=C:\W3Sites\lwww\varer_pic\28072006124313_DSCN9790.JPG
Det er så min ålan at der skal laves en thumbnail og gemmes i mappen:thumbnails
Sub SaveThumbnail() ' Initialize objects Dim objImage, objThumbnail As System.Drawing.Image Dim strServerPath, strFilename As String Dim shtWidth, shtHeight As Short
objImage = objImage.FromFile(request("Image")) ' set width shtWidth = 100 ' Work out a proportionate height from width shtHeight = objImage.Height / (objImage.Width / shtWidth) ' Create thumbnail objThumbnail = objImage.GetThumbnailImage(shtWidth, shtHeight, Nothing, System.IntPtr.Zero) ' Send down to client objThumbnail.Save(Server.MapPath("thumbnails\test.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg) ' Tidy up objImage.Dispose() objThumbnail.Dispose() End Sub </script>
hvor forestiller du dig at den skal gemme det? - du har skrevet 'send down to client i kommentaren... Det vil ikke ske. Desuden giver en lokal sti ikke rigtig mening på serveren, men det er måske meningen at det er en serversti der skal stå i url'en eller? Mvh
Jeg er ikke sikker på at jeg forstår det scenarie du vil realisere, men prøv sådan en som den her. Gem den komplette kode i en fil du kalder ThumbnailGenerator.ashx
Imports System Imports System Imports System Imports System
Public Class ThumnailGenerator Implements IHttpHandler Public Sub ProcessRequest(ByVal context As HttpContext) ' skriv besked hvis ingen fil er angivet If context.Request.QueryString("imagefile") Is Nothing Then context.Response.Write("Du skal angive en fil i querystring") Return End If
' ellers hent filnavn fra querystring Dim file As String = context.Request.QueryString("imagefile")
' indlæs billedet using(Image img = Image.FromFile(file)) ' generér thumbnail Imports (Image thumb = img.GetThumbnailImage(50, 50, Nothing, IntPtr.Zero)) { ' gem thumbnail hvor det originale billede lå, med thumb_ som prefix Dim thumbfile As String = Path.Combine(Path.GetDirectoryName(file),"thumb_" + Path.GetFileName(file)) thumb.Save(thumbfile) }
' viderestilling til en eller anden side context.Server.Transfer("Default.aspx", False) End Sub
Public ReadOnly Property IsReusable() As Boolean Get Return False End Get End Property End Class
Du kan derefter kalde den sådan her: <a href="ThumnailGenerator.ashx?imagefile=<filepath>">Generate thumbnail</a> Altså på helt normal vis.
hmm, jeg har nu gemt som .ashx og får i stedet fejlen: Compiler Error Message: BC30002: Type 'IHttpHandler' is not defined.
Så prøvede jeg med Dim IHttpHandler og så kom næste fejl: Compiler Error Message: BC31053: 'Implements' statements must follow any 'Inherits' statement and precede all declarations in a class.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.