[ Nemanja Avramović @ 02.02.2005. 14:58 ] @
...ok, zakljucio sam da bez GD-a ne moze <img src="skripta.php?parametri...blabla">, ali meni treba sledece... Znaci treba sa sajta koji nema php da se pozove skripta sa mog sajta (gde nema GD i onaj Image...) koja nece da generise sliku, vec samo na osnovu parametara vrati <img src.....

da li ovo moze preko <script src...> ako vec ne moze preko <img src...> ?
[ dinke @ 03.02.2005. 08:11 ] @
Može. Pogledaj primer za fpassthru u phpmanualu.

Code:

<?php

// open the file in a binary mode
$name = ".\public\dev\img\ok.png";
$fp = fopen($name, 'rb');

// send the right headers
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// dump the picture and stop the script
fpassthru($fp);
exit;

?>


A script isto pozivas sa src atributom img elementa recimo:

<img src="http://tvojserver.com/path/to/script.php?imagename=ok.png">

Sve što treba da uradiš je da malo modifikuješ ovaj primer iz manuala i to je to :)
[ Nemanja Avramović @ 03.02.2005. 10:42 ] @
hvala, pogledacu sad pa cu javiti...
[ Nemanja Avramović @ 03.02.2005. 11:19 ] @
hej, nece... imam ovako:

http://localhost/amionline/check2.php:

<?php

// open the file in a binary mode
$name = "http://localhost/logo.png";
$fp = fopen($name, 'rb');

// send the right headers
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// dump the picture and stop the script
fpassthru($fp);
exit;

?>

i http://localhost/index.html (kao i http://localhost/logo.png);

Kad idem direktno do check2.php (u address bar-u), kaze:
`The image “http://localhost/amionline/check2.php” cannot be displayed, because it contains errors.`
kad otvorim http://localhost/ (index) samo mi prikaze broken image (FireFox)

u cemu gresim?

edit: index.html:

<img src='http://localhost/amionline/check2.php'>
ili
<img src='http://localhost/amionline/check2.php?imagename=logo.png'>
[ Jbyn4e @ 03.02.2005. 11:34 ] @
1) jesi siguran da u root-u web-a imas taj png fajl?
2) obrati paznju da je njemu gore putanja do fajla (direktorijuim) a tebi putanja preko http protokola. Pogledaj
http://www.php.net/fopen
da li ti neko od ovih ogranicenja koja su tu navedena pravi problem.
[ Nemanja Avramović @ 03.02.2005. 11:40 ] @
e pa meni mora da bude http... sad cu da iskombinujem nesto a ako nece ni to, onda cu morati sa content-type: text/javascript, mada me i tu nesto zeza... sad cu da pogledam, hmmmmm...
[ Jbyn4e @ 03.02.2005. 11:48 ] @
Da li ti
http://localhost/logo.png
prikaze sliku?
[ dinke @ 03.02.2005. 12:22 ] @
Ajmo opet. :))

get_image.php
Code:

<?php

//putanja do slika na tvom hdd-u
$path_to_image = "/apache/htdocs/";

//ime prenosimo get metodom sa drugog servera
//niposto ne veruj ovome vec proveri sta je preneto!
$name = $_GET['name'];
$filename = $path_to_image . $name;

//otvaramo fajl binarno (na *nixu to nema veze)
$fp = fopen($filename, 'rb');

// saljemo png headere i filesize
header("Content-Type: image/png");
header("Content-Length: " . filesize($filename));

// dump the picture and stop the script
fpassthru($fp);
exit;

?>


Fajl pozivas iz browsera sa http://localhost/get_image.php?name=foo.png. To ce ti ucitati foo.png u browser.

Daklem, sledeci html ce da odradi posao:

foo.html
Code:

<html>
<head>
</head>
<body>
<img src="http://localhost/get_image.php?name=foo.png">
</body>
</html>


I to *mora* da radi. Kod mene u lokalu naravno radi.

E sad, za production varijantu, ovaj html fajl ce biti na jednom serveru a ovaj get_image.php (i sam image) na drugom.
[ Nemanja Avramović @ 03.02.2005. 14:42 ] @
A da li ovo moze da ucita sliku sa drugog servera? Tacnije da li php moze da ucita ovako sliku sa nekog `treceg` servera?

vec sam resio problem sa <script src...> ali ovako je elegantnije (IMG)
[ dinke @ 03.02.2005. 15:02 ] @
Ovo resenje koje sam ti ja dao podrazumeva da je slika i php script na jednom, a html fajl koji trazi sliku na drugom serveru (gde kako ti rece nemas php support), jer sam tako razumeo postavku tvog problema.

No naravo, moze php i da vuche i sliku sa drugog servera, to prepustam tebi da resis. :)
[ Nemanja Avramović @ 03.02.2005. 17:10 ] @
e, imam hosting sa gd-om, ali nece da prikaze sliku kad ga onako pozovem, a kad direktno u addressbar ukucam:
http://lokacija/slika.php?image=slika.jpg
ono mi da gomiiiiiiiiiiiiiiiiiiiiiilu karaktera (slika?)

hm......?
[ dinke @ 03.02.2005. 18:14 ] @
Pa jesi li promenio content type u headeru koji šalješ ? Ako i dalje koristiš png a šalješ jpg sliku, to je sasvim očekivano.
[ Nemanja Avramović @ 03.02.2005. 19:05 ] @
header('Content-type: image/jpeg');

da ne treba nesto drugo da se stavi? ne jpeg?
[ dinke @ 03.02.2005. 21:55 ] @
kod IE-a je mislim image/pjpeg. Probaj to dakle.
[ Aleksandar Marković @ 03.02.2005. 22:28 ] @
cekaj. meni sve radi http://www.bit-center.net/lokacija.htm koja se to slika javlja @#!%$!@#%$$!#% ???
[ Nemanja Avramović @ 03.02.2005. 22:36 ] @
ne, nece... :(

btw, i ja sam FireFox-ovac :)
[ dinke @ 04.02.2005. 12:08 ] @
Pa stvarno ne znam. Daj kod ovde, pa da pogledamo :)
[ Br@nkoR @ 04.02.2005. 12:14 ] @
A da nemaš neki prazan karakter ili kod ispred početka PHP koda, ispred <?php, pa se šalje drugi header.

Citat:
Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.
Code:

<html>
<?php
/* This will give an error. Note the output
* above, which is before the header() call */
header('Location: http://www.example.com/');
?> 

[ Nemanja Avramović @ 04.02.2005. 14:34 ] @
ne, <?php je na pocetku dokumenta, i nema nikakvog outputa ni u skripti pre header-a

ma bre koristim onaj primer....... odozgore :)