Avatar billede pnr Nybegynder
29. november 2003 - 15:13 Der er 12 kommentarer og
1 løsning

Skal vise en gif animation mens billeder resizes

Jeg har en side hvor man kan uploade nogle billeder, som så resizes til 2 størrelser der passer til web.

Mit problem er at det tager lidt tid at resize de billeder, og derfor vil jeg gerne vise brugeren at der sker noget, derfor har jeg lavet en gif animation på siden før de resizes, som viser at der sker noget. Men den går i stå når jeg submitter til resize siden! Hvordan kan jeg få den til at køre indtil billederne er blevet resized?
Avatar billede thesurfer Nybegynder
29. november 2003 - 15:19 #1
Du resizer med et asp image komponent? (f.eks. AspImage, hvis det kan?)

du kan prøve:
<%
' siden sendes til browseren som den bliver dannet:
response.buffer = false

' havde der stået true i stedet for false, ville hele siden blive dannet FØR den sendes til browsere.
' True er vist default.
%>
<img src="animation.gif">
<%
resize-billede-asp-kode her

' når billederne er resized, sendes brugeren til "done.asp":
response.redirect "done.asp"
%>

hvis du ikke vil sende brugeren til "done.asp", erstatter du bare koden med din egen kode..
Avatar billede pnr Nybegynder
29. november 2003 - 16:31 #2
Det kan jeg ikke få lov til jeg får følgende fejl:

Response object error 'ASP 0157 : 80004005'

Buffering On

/resize.asp, line 12

Buffering cannot be turned off once it is already turned on.
Avatar billede thesurfer Nybegynder
29. november 2003 - 16:51 #3
linien response.buffer = false skal stå før alt asp/html kode.. fakisk er det kun Option Explict der skal stå før det..
Når du bruger Option Explicit, skal du definere alle dine variabler før du bruger dem.. på den måde undgår du stavfejl..

eksempel på en asp fil:
--- start
<%
Option Explicit
Response.Buffer = False
..noget asp kode her..
%>
noget html kode her..
--- slut

Brug altid Option Explicit, og definer altid dine variabler.
Avatar billede pnr Nybegynder
29. november 2003 - 20:25 #4
Nå nu får jeg så følgende fejl når jeg prøver at redirecte til done.asp

Response object error 'ASP 0156 : 80004005'

Header Error

/resize.asp, line 243

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
Avatar billede thesurfer Nybegynder
29. november 2003 - 21:02 #5
Når du får en fejlmelding skal du skrive:
- fejlmeldingen
- linie nr
- hvad der står på linien
- evt "hjemmelavede" funktioner du brugte da der opstod fejl
- variablers indholder, hvis du brugte variabler ved fejlen

Så.. gør det..
Avatar billede pnr Nybegynder
29. november 2003 - 21:43 #6
Linie 243: response.redirect "http://" & url & "/Bestilling.asp"
Avatar billede thesurfer Nybegynder
29. november 2003 - 21:57 #7
ahh.. det er fordi response.buffer = false fortæller den at den skal vise siden mens den bliver dannet..
response.redirect sender brugeren videre til en anden side.. men det kan den jo ikke, når det er at den viser siden mens den dannes.. så ville der være et "hop"/spasme :)
I stedet for response.redirect "http://" & url & "/Bestilling.asp" kan du f.eks. bruge:

response.write "<script language='JavaScript'>location.href = 'http://" & url & "/Bestilling.asp';</script>"

Så skulle det gerne virke..
Avatar billede pnr Nybegynder
30. november 2003 - 15:07 #8
Nyt problem, Jeg får nu følgende fejl i forbindelse med at jeg resizer:

Response object error 'ASP 0156 : 80004005'

Header Error

/resize.asp, line 191

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.

Her er koden:

        intRatio = ((th_x * 100) / Image.MaxX)
        intNewY = CInt(Image.MaxY * (intRatio / 100))
        Image.Resize th_x, intNewY
        Image.ImageFormat = 1
        Image.JPEGQuality = 72
        Image.filename = sti & "\thumbnails\" & filnavn
        Image.SaveImage       
               
        Response.ContentType = "image/jpeg" ' Linie 191
Avatar billede thesurfer Nybegynder
30. november 2003 - 17:44 #9
Hvad er det for et komponent du bruger?

Jeg tror ikke jeg ved hvordan det skal gøres.. du skal måske over i (i)frames..

Du kan have et side med et "Billedet bliver genereret"-besked, og i et lille iframe (usynlig) kan du generere det nye billede..
Så skal du ikke bruge response.buffer = false. I slutningen af din asp fil, har du så <script language='JavaScript'>parent.document.location.href='resultat.asp';</script>. 'resultat.asp' er en side der fortæller brugeren at billedet nu er resized..
Avatar billede pnr Nybegynder
30. november 2003 - 17:51 #10
Jeg bruger aspimage

Det var måske en god ide med det iFrame, det roder jeg lidt videre med.
Avatar billede pnr Nybegynder
30. november 2003 - 19:59 #11
Så lykkes det at lave med et Iframe!

thesurfer: tusind tak for hjælpen, smid et svar så er der point!
Avatar billede thesurfer Nybegynder
30. november 2003 - 20:07 #12
Et svar er smidt.
Glad for at kunne hjælpe.
Avatar billede thesurfer Nybegynder
30. november 2003 - 20:09 #13
Takker for points.
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