Avatar billede rille101 Nybegynder
12. september 2007 - 14:55 Der er 10 kommentarer og
1 løsning

Kan ikke få Aspjpeg til at virke.

hej.
Sidder og bøvler med at få lavet et "on the fly" thumbnail vha. Aspjpeg

Har været inde på Aspjpeg.com og læse i manualen, og ud fra den har jeg lavet følgende:
En fil "nyhederimages.asp" med flg. kode:
<%
Response.Expires = 0
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open( Request("path") )
Jpeg.Width = Request("Width")
Jpeg.Height = Jpeg.OriginalHeight * Jpeg.Width / Jpeg.OriginalWidth
Jpeg.SendBinary
%>

På den side hvor billedet skal vises skriver jeg så:
<img src="nyhederimages.asp?path=<%=RSnyheder("img1")%>&amp;width=100" border="1" />

Men billedet bliver ikke vist, får bare [x].

Når jeg vælger egenskaber for der hvor billedet skulle være, kan jeg se at stien er:

http://www.MIN-ADRESSE.dk/nyhederimages.asp?path=images/nyhederimages/iz045026(13).jpg&width=100

hvilket ser rigtigt ud i mine øjne...

Er der en expert i nærheden? :-)
Avatar billede rille101 Nybegynder
12. september 2007 - 14:58 #1
Rettelse:
Billedet kaldes med:
<img src="nyhederimages.asp?path=<%=RSnyheder("img1")%>&width=100" border="1" />
Avatar billede goose Nybegynder
12. september 2007 - 15:32 #2
Du skal temmelig sikker bruge en relativ sti som f.eks.: d:\domæne\www\ istedet for.

/Goose
Avatar billede goose Nybegynder
12. september 2007 - 15:34 #3
Jeg bruger normalt ASPImage til dette og min ser således ud:

Set Image = Server.CreateObject("AspImage.Image")
Image.LoadImage "d:\web\goose.dk\www\foto\" & request.querystring("FileName")
Image.ImageFormat = 1
Image.JPEGQuality = 90
Image.ResizeR NewWidth,NewHeight
Response.BinaryWrite Image.Image
Set Image = Nothing

/Goose
Avatar billede keysersoze Ekspert
12. september 2007 - 23:02 #4
hvilken fejl får du i selve koden?
Avatar billede rille101 Nybegynder
17. september 2007 - 09:08 #5
Har prøvet mig frem med de mest oplagte relative stier, uden held.

Den kode jeg har i "nyhederimages.asp" er direkte sakset fra aspjpeg's hjemmeside.

Jeg får ikke nogen fejlmeddelelser, billedet vises bare ikke.
Avatar billede thesurfer Nybegynder
17. september 2007 - 10:00 #6
"d:\domæne\www\" må være den fysiske sti.. :-)

Den kan opnås med: Server.MapPath("relativ sti f.eks. url")

Hvis rille101 har rootmappe i d:\wwwroot\, vil Server.MapPath("images/nyhederimages/iz045026(13).jpg") give resultatet:

d:\wwwroot\images\nyhederimages\iz045026(13).jpg


Problemet kan være, at rille101 bruger "" uden om variabelnavnene til parameterene i urlen:

Request("path")
Request("Width")

Så med mindre at "Request" er en del af "Persits.Jpeg", hvilket det ikke ser ud til at være (da det så skulle have været "Jpeg.Request"), er det forkert.


PS:
Bruge aldrig Request(noget her).

Brug altid den korrekte fremgangsmåde, f.eks.:

- Hvis data er sendt via urlen/adressefeltet, bruge da Request.Querystring(noget her)

- Hvis data er sendt via formen (er IKKE synlig i adressefeltet), brug da Request.Form(noget her)
Avatar billede rille101 Nybegynder
19. september 2007 - 10:00 #7
Har prøvet jeres gode forslag, samt nogle af mine egne ideer. Det hele giver bare samme resultat [x].

Men jeg forstår heller ikke helt, hvorfor det skulle være nødvendigt at ændre på persits egen eksempel, som jeg har angivet 12/9 14:55.

Den querystring som hentes ind er "images/nyhederimages/billede1.jpg"
og da nyhederimages.asp korrekt i forhold til billedstien der er angivet i querystringen burde den jo finde billedet. Er jeg meget forkert på den?
Avatar billede thesurfer Nybegynder
19. september 2007 - 11:44 #8
Husk på at der ikke må være andre udskrivninger, hverken med Response.Write (eller ligenden) eller mellemrum/tekst før/efter ASP-kodeblokken. Hvis der er det, vil det korruptere billede-dataene der sendes til browseren, og dataene vil ikke længere være et billede.


Prøv at udskrive dette, og se om det passer med placeringen af billedet:

1)
Server.MapPath("images/nyhederimages/iz045026(13).jpg")

2)
Server.MapPath(Request("path"))

Så vidt jeg ved, kan komponenten ikke bruge en adresse der hedder "images/nyhederimages/iz045026(13).jpg". Den skal bruge den absolute sti, som er på serversiden, som man finder med Server.MapPath.

PS:
Min kommentar angående "" i Request er forkert. Der skal naturligvis være "" uden om variabelnavnene i urlen, da inputtet ellers ville blive fortolket som variabler, og ikke strenge (som det faktisk er).
Avatar billede thesurfer Nybegynder
19. september 2007 - 11:50 #9
Du kan prøve et script som jeg har brugt før, og ved virker 100%:

Private Sub LoadImage()
        dim file
        file = Request.Querystring("path")
        '--declare variables
        Dim strAbsFile
        Dim strFileExtension
        Dim objFSO
        Dim objFile
        Dim objStream
        '-- set absolute file location
        strAbsFile = Server.MapPath(file)
        '-- create FSO object to check if file exists and get properties
        Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
        '-- check to see if the file exists
        If objFSO.FileExists(strAbsFile) Then
            Set objFile = objFSO.GetFile(strAbsFile)
            '-- first clear the response, and then set the appropriate headers
            Response.Clear
            '-- the filename you give it will be the one that is shown
            ' to the users by default when they save
            Response.AddHeader "Content-Disposition", "attachment; filename=" & objFile.Name
            Response.AddHeader "Content-Length", objFile.Size
            Response.ContentType = "application/octet-stream"
            Set objStream = Server.CreateObject("ADODB.Stream")
            objStream.Open
            '-- set as binary
            objStream.Type = 1
            Response.CharSet = "UTF-8"
            '-- load into the stream the file
            objStream.LoadFromFile(strAbsFile)
            '-- send the stream in the response
            Response.BinaryWrite(objStream.Read)
            objStream.Close
            Set objStream = Nothing
            Set objFile = Nothing
        Else 'objFSO.FileExists(strAbsFile)
            Response.Clear
            Response.Write("No such file exists: " & file)
        End If
        Set objFSO = Nothing
    End Sub

Jeg kan ikke huske hvor jeg fik scriptet fra..
Sub'en hed også "DownloadFile" dengang, og tog imod en parameter.. det har jeg lavet om, så den aflæser filen via Request.Querystring..

Prøv at smide koden i en ASP fil, der ligger i samme mappe (ved siden af) som "images"-mappen f.eks. "billede.asp" og kald den med:

<img src="billede.asp?path=images/nyhederimages/iz045026(13).jpg">

Se om det virker.
Avatar billede rille101 Nybegynder
19. september 2007 - 13:37 #10
2)
Server.MapPath(Request("path"))

Denne string gjorde det.
Har således indsat følgende i scriptet:

Jpeg.Open(Server.MapPath(Request.querystring("path")))

Og det virker!

Mange tak for hjælpen.
Thesurfer, pointene er dine. Smider du lige et svar.
Avatar billede thesurfer Nybegynder
19. september 2007 - 15:34 #11
Yeps :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester