[php] JPEG niet weergegeven in Phoenix

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Dentist
  • Registratie: December 2000
  • Laatst online: 16-09 10:36

Dentist

Next patient please...

Topicstarter
Ik heb onlangs een script gemaakt dat plaatjes thumbnailt en de ubb-code ervoor genereert. Tevens slaat het script 50 thumbs op in een cache en als die cache vol is, vervangt de nieuwste thumb de oudste.

Nou werkt dat allemaal prima in IE. Echter, in Phoenix/Mozilla geeft hij de eerste keer een foutmelding (The image "http://www.skizone.nl/atc/atc.php" cannot be displayed, because it contains errors). Als ik dan een refresh doe, is de thumb wél goed aangemaakt.

Ik vermoed dat de header-informatie niet goed wordt verwerkt door Phoenix, maar helemaal zeker weten doe ik dat niet.

Dit is de code.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
$size = getimagesize ($filename);
$ratio = $sizew/$size[0];
$new_w = $ratio*$size[0];
$new_h = $ratio*$size[1];

$dst_img=imagecreate($new_w,$new_h);
$src_img=ImageCreateFromJPEG($filename);
ImageCopyResized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));

header("Content-type: image/jpeg");
ImageJPEG($dst_img, $thumbpath);
ImageDestroy($dst_img);


Iemand een idee wat ik kan doen om dit probleem in Phoenix/Mozilla te verhelpen?

Het script is werkend te zien op http://www.skizone.nl/atc/atc.php

[ Voor 7% gewijzigd door Dentist op 20-03-2003 16:32 . Reden: Geldt ook voor Mozilla :) ]


Acties:
  • 0 Henk 'm!

Verwijderd

offtopic: kijk eerst ff of er wel input is, dus of $filename wel ingevuld is en of dat plaatje daadwerkelijk bestaat ;)

Acties:
  • 0 Henk 'm!

  • Dentist
  • Registratie: December 2000
  • Laatst online: 16-09 10:36

Dentist

Next patient please...

Topicstarter
:/ Er is input, het script werkt, het plaatje bestaat... Uiteraard, zou ik haast zeggen. Anders zou het óók niet werken onder IE, of na een refresh.

[ Voor 9% gewijzigd door Dentist op 20-03-2003 17:15 ]


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Probeer het eens door je content-type header weg te halen, en een content-type: text/plain neer te zetten. Vervolgens een paar keer refreshen, en kijken of de content wel elke keer hetzelfde is...

Verder zou je met een util als ethereal even kunnen checken wat precies de headers zijn die je binnenkrijgt c.q. verstuurt.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Dentist schreef op 20 March 2003 @ 17:12:
:/ Er is input, het script werkt, het plaatje bestaat... Uiteraard, zou ik haast zeggen. Anders zou het óók niet werken onder IE, of na een refresh.
Ik bedoelde eigelijk dat je dit te zien kreeg, ook als je niks invulde, maar dat is al verholpen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Warning: getimagesize: Unable to open 'bla' for reading. in /var/www/htdocs/skizone/html/atc/atc.php on line 136

Warning: Division by zero in /var/www/htdocs/skizone/html/atc/atc.php on line 137

Warning: imagecreatefromjpeg: Unable to open 'bla' for reading in /var/www/htdocs/skizone/html/atc/atc.php on line 142

Warning: Supplied argument is not a valid Image resource in /var/www/htdocs/skizone/html/atc/atc.php on line 143

Warning: Supplied argument is not a valid Image resource in /var/www/htdocs/skizone/html/atc/atc.php on line 143

Warning: Supplied argument is not a valid Image resource in /var/www/htdocs/skizone/html/atc/atc.php on line 143

Warning: Cannot add header information - headers already sent by (output started at /var/www/htdocs/skizone/html/atc/atc.php:136) in /var/www/htdocs/skizone/html/atc/atc.php on line 145

Acties:
  • 0 Henk 'm!

  • Dentist
  • Registratie: December 2000
  • Laatst online: 16-09 10:36

Dentist

Next patient please...

Topicstarter
Als je niks invult, krijg je errors, klopt.. Maar goed, op zich maakt dat niet uit, want mensen zullen het ding gebruiken waar het voor is (en hoe fout kan het invullen van een url gaan?).. Het kan netter, maarja, tijd en luiheid. :)

Ga nú ethereal proberen.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Het hoeft natuurlijk niet aan de headers te liggen. Treed dit probleem op waneer een plaatje wordt gegenereerd en niet waneer deze uit de cache wordt gehaald?
In dat geval kun je kijken of een er bij het genereren mischine perongeluk toch nog wat uitvoer is waardoor de image data begint met een spatie of newline oid. (Denk vooral ook om enters of spaties buiten de <& en &> in geinclude bestanden)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 16-08 06:44

CyberSnooP

^^^^ schrijft --->

Ik snap uit de code niet helemaal wat je wil bereiken. Je genereert inderdaad een thumb en die schrijf je weg in een file. Je geeft in je code-snippet helemaal geen uitvoer, op de header met het mime-type na. Je verteld mozilla dus dat je uitvoer een JPEG-je is en vervolgens geef je hem niks als content. Wat doe je nadat je de file hebt gegenereerd?

|_____vakje______|


Acties:
  • 0 Henk 'm!

  • Dentist
  • Registratie: December 2000
  • Laatst online: 16-09 10:36

Dentist

Next patient please...

Topicstarter
Cybersnoop, thx.. Dat was het.. Ik had een stuk gekopieerd en die regel niet weggehaald.

Ik heb nl 2 manieren om die file aan te roepen, met een ?url=blabla en vanuit een post in dat formulier. De eerste manier geeft direct de thumbnail weer, of genereert hem als ie nog niet in de cache staat. De tweede maakt alleen een thumb aan met een link. Kennelijk neemt mozilla het wat serieuzer als je een header stuurt en vervolgens daar niets mee doet :)

[ Voor 21% gewijzigd door Dentist op 20-03-2003 18:18 ]

Pagina: 1