ugrás a tartalomhoz

Kép és HTML küldése együtt nem megy

Anonymous · 2005. Szep. 20. (K), 20.16
Következő a problémám:
Kiküldtem kimenetre egy képet imagejpeg() fv-el. De ez elött kénytelen vagyok egy header fv-t is meghívni, amiben megadom, hogy kép/jpeg kimenetet szeretnék. Az oldalt puffereltem, ami miatt el is küldi a headert. De az oldal ezután nem jelenik meg, mert hibát talál a képben.
tudom, hogy az a baj, hogy a headert küldi el először, és utána a html kimenetet amit nem értelmez képnek - ez logikus is - de akkor hogyan csináljam?
 
1

egyszerre csak egyet

Sweetchack · 2005. Szep. 20. (K), 20.21
Hello

Nem lehet egyszerre két dolgot küldeni a böngészőnek.
Kell legyen egy olyan scripted ami a HTML-t csinálja és egy olyan ami a képet (a megfelelő Header-rel).

<html>
<body>
  <img src=”kepcsinalo.php?szin=piros&abra=kismalac”>
</body>
</html>
A kepcsinalo.php a kapott paraméterek alapján dolgozik is küldi a kimenetre az eredményt.

Persze lehet hogy nagyon félre értettelek.
2

nem megy

Anonymous · 2005. Szep. 20. (K), 21.05
Hát valahogy ez nem akarm működni. Kép forrásának megadom a képfeldolgozó lapot, ( <img src=”th.php?picture='.$picture.'” border="0"> ) ahol egy header('Content-type: image/jpeg'); -el kiküldöm kimenetre, de a böngészőben ez jelenik meg kép forrásaként:

kepek/%EF%BF%BDth.php?picture=test.jpg%EF%BF%BD
3

idézőjelek

Hojtsy Gábor · 2005. Szep. 20. (K), 21.13
Figyeld meg, hogy a saját példádban is az src és a border attribútumok más-más idézőjeleket használnak. A dőlt idézőjeleket a HTML-nek nem értelmezik idézőjelként.
4

nem csak az a baj

Anonymous · 2005. Szep. 21. (Sze), 08.33
Azt csak példaként írtam, pontosan így szerepel az oldalon:

<?php
printf ('<img src="/th.php?picture=%d" border="0">', $picture);
?>
A th.php kódját a zend oldaláról szedtem:

<?php
$filename = $_GET['picture'];
$percent = 0.5;
header('Content-type: image/jpeg');
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
$thumb = imagecreate($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagejpeg($thumb);
?>
Ha a th.php oldalt futtatom, és megadom a picture értékét, akkor lefut hibátlanul.
5

akkor ezert nem jo :)

Anonymous · 2005. Szep. 21. (Sze), 09.31
Bar nem ertem, hogy miert jo, ha valaki printf-el oldja meg a kiirast, de ha azzal oldod meg akkor legalabb %s-et hasznalnal. A %d ugyanis szamot helyettesit, nem pedig stringet.
6

igaz

Anonymous · 2005. Szep. 21. (Sze), 16.03
Igazad van, de még is sem megy:)
Az a probléma, hogy a th.php?... -t akarja beszúrni képnek, és nem lefuttatni ezt az oldalt, és kirakni a kimenetét.
7

bocsánat

Sweetchack · 2005. Szep. 21. (Sze), 22.19
próbáld így:

<?php
printf ('<img src="/th.php?picture=%s" border="0">', URLencode($picture));
?>