|
| vise et billede hentet fra en anden server Fra : Henrik Stidsen |
Dato : 29-11-03 16:24 |
|
Jeg sidder og roder lidt med noget proxy lign. PHP script.
Problemet er sådan set at jeg ikke kan få den til at vise billeder.
Jeg har prøvet forskellige ting, hente via en socket, include, fopen
osv. Intet virker...
Det er ikke fordi jeg ikke sender den korrekte header.
--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
"Nogen gange kan ens liv godt føles som et puslespil, hvor brikkerne
bevæger sig og skifter farve og størrelse når man rører dem."
- Emme, http://emme.dk/2003_11_01_arkiv.html#106840650828914899
| |
Jacob Atzen (29-11-2003)
| Kommentar Fra : Jacob Atzen |
Dato : 29-11-03 16:28 |
|
Henrik Stidsen <nospamforme@hs235.dk> writes:
> Jeg sidder og roder lidt med noget proxy lign. PHP script.
> Problemet er sådan set at jeg ikke kan få den til at vise billeder.
>
> Jeg har prøvet forskellige ting, hente via en socket, include, fopen
> osv. Intet virker...
>
> Det er ikke fordi jeg ikke sender den korrekte header.
< http://catb.org/~esr/faqs/smart-questions.html>
--
Med venlig hilsen
- Jacob Atzen
| |
Henrik Stidsen (29-11-2003)
| Kommentar Fra : Henrik Stidsen |
Dato : 29-11-03 20:55 |
|
Jacob Atzen <jacob@aub.dk> wrote in
news:x6xekvrtcs5.fsf@berling.diku.dk
>> Jeg sidder og roder lidt med noget proxy lign. PHP script.
>> Problemet er sådan set at jeg ikke kan få den til at vise
>> billeder.
>>
>> Jeg har prøvet forskellige ting, hente via en socket, include,
>> fopen osv. Intet virker...
>>
>> Det er ikke fordi jeg ikke sender den korrekte header.
>
> < http://catb.org/~esr/faqs/smart-questions.html>
Prøver du at sige at du ikke forstod spørgsmålet eller at du mener
det er for dårligt beskrevet ?
Kan da godt prøve med en lidt mere detaljeret beskrivelse.
Jeg skal have en PHP fil til at sende et billede fra en anden server
til klienten, altså en slags proxy.
Jeg har prøvet at få scriptet til at åbne en socket og hente det på
den måde (så får man headers med), jeg har prøvet at include det med
include(), jeg har prøvet at åbne det med fopen() og på den måde
hente det.
Intet virker, hverken IE, Mozilla eller Opera kan vise billedet.
Hvad kan jeg have gjort galt ? - er der nogen der har et tip til
hvordan det skal gøres smartest ?
Jeg har sørger for at der sendes korrekte headers.
--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
"Nogen gange kan ens liv godt føles som et puslespil, hvor brikkerne
bevæger sig og skifter farve og størrelse når man rører dem."
- Emme, http://emme.dk/2003_11_01_arkiv.html#106840650828914899
| |
Leonard (29-11-2003)
| Kommentar Fra : Leonard |
Dato : 29-11-03 22:01 |
|
Henrik Stidsen <nospamforme@hs235.dk> wrote:
>Prøver du at sige at du ikke forstod spørgsmålet eller at du mener
>det er for dårligt beskrevet ?
Vis noget kode ellers er det umuligt at gætte hvad du har gang i.
--
mvh Leonard http://leonard.dk/
Det er en muldvarp på motorcykel!
Hvad er det, der er småt, sort og meget hurtigt?
http://usenet.dk/netikette/citatteknik.html
| |
Timo J (30-11-2003)
| Kommentar Fra : Timo J |
Dato : 30-11-03 01:45 |
|
Hmm grøn til Php som jeg er vil jeg foreslå to ting..
!) Generer det i html, der er intet i vejen med at vise et billede ligende
på en anden server..
2) Lav en temp, folder og slet det efter x timer..
--
Venligst / Best Regards
Timo Jattu
Scandinavian Diving Import
WWW.S-D-I.DK
(+45) 2845 5040
"Henrik Stidsen" <nospamforme@hs235.dk> skrev i en meddelelse
news:Xns9442D4BD93CFCHS235dk@130.225.247.90...
> Jacob Atzen <jacob@aub.dk> wrote in
> news:x6xekvrtcs5.fsf@berling.diku.dk
>
> >> Jeg sidder og roder lidt med noget proxy lign. PHP script.
> >> Problemet er sådan set at jeg ikke kan få den til at vise
> >> billeder.
> >>
> >> Jeg har prøvet forskellige ting, hente via en socket, include,
> >> fopen osv. Intet virker...
> >>
> >> Det er ikke fordi jeg ikke sender den korrekte header.
> >
> > < http://catb.org/~esr/faqs/smart-questions.html>
>
> Prøver du at sige at du ikke forstod spørgsmålet eller at du mener
> det er for dårligt beskrevet ?
>
> Kan da godt prøve med en lidt mere detaljeret beskrivelse.
>
> Jeg skal have en PHP fil til at sende et billede fra en anden server
> til klienten, altså en slags proxy.
>
> Jeg har prøvet at få scriptet til at åbne en socket og hente det på
> den måde (så får man headers med), jeg har prøvet at include det med
> include(), jeg har prøvet at åbne det med fopen() og på den måde
> hente det.
> Intet virker, hverken IE, Mozilla eller Opera kan vise billedet.
> Hvad kan jeg have gjort galt ? - er der nogen der har et tip til
> hvordan det skal gøres smartest ?
>
> Jeg har sørger for at der sendes korrekte headers.
>
> --
> .: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
> "Nogen gange kan ens liv godt føles som et puslespil, hvor brikkerne
> bevæger sig og skifter farve og størrelse når man rører dem."
> - Emme, http://emme.dk/2003_11_01_arkiv.html#106840650828914899
| |
Thomas Lindgaard (30-11-2003)
| Kommentar Fra : Thomas Lindgaard |
Dato : 30-11-03 13:47 |
|
[snip]
> 2) Lav en temp, folder og slet det efter x timer..
Det var også sådan en løsning jeg umiddelbart kom på da jeg læste
indlægget...
<?php
// Hent billede (kode nupset fra http://dk.php.net/fread)
$f = fopen(' http://masserafbilleder/1.jpg', 'rb');
$image = '';
do {
$data = fread($f, 8192);
if ( strlen($data) == 0 ) {
break;
}
$image .= $data;
} while ( true );
fclose($f);
// Gem billede på disk
$f = fopen('tmp/1.jpg', 'wb');
fwrite($f, $image);
fclose($f);
// Servér det for klienten
print '<html><body><img src="tmp/1.jpg"></body></html>';
?>
Det er naturligvis 100% utestet.
Jeg går ud fra at det du egentlig gerne vil er noget i retning af:
<?php
// Hent billede som før
// Send billede til klienten
Header('den rigtige header som jeg ikke kender');
print $image;
?>
.... men hvordan gør du i virkeligheden?
Mvh.
/Thomas
| |
Henrik Stidsen (30-11-2003)
| Kommentar Fra : Henrik Stidsen |
Dato : 30-11-03 20:07 |
|
"Thomas Lindgaard" <thomas@it-snedkeren.BLACK_HOLE.dk> wrote in
news:pan.2003.11.30.12.46.52.922789@it-snedkeren.BLACK_HOLE.dk
> Jeg går ud fra at det du egentlig gerne vil er noget i retning af:
>
> <?php
>
> // Hent billede som før
>
> // Send billede til klienten
> Header('den rigtige header som jeg ikke kender');
> print $image;
>
> ?>
Præcis hvad jeg gerne vil.
> ... men hvordan gør du i virkeligheden?
Okay, her kommer det hele, det er ikke særlig elegant og det æder
også CPU resourcer så man tror det er løgn...
<?php
if(@$_SERVER["QUERY_STRING"])
{
// Splitter URL´en
$url = eregi_replace("^ http://", "", $_SERVER["QUERY_STRING"]);
$host = strtolower(eregi_replace("/.*", "", $url));
$path = eregi_replace("^".$host, "", $url);
if($path == "") $path = "/";
if(ereg(":", $host))
{
$port = ereg_replace(".*:", "", $host);
$host = ereg_replace(":".$port."$", "", $host);
}
else $port = 80;
header("Content-Type: image/gif");
// include(" http://$url");
$stream = fopen(" http://$url", 'r');
fpassthru($stream);
}
?>
Grunden til at jeg sender en image/gif som header er at jeg som en
start forsøger at få det til at virke bare med et gif billede.
Hvis jeg er heldig får jeg en blank side hvor der står "GIF89" og et
par sjove tegn...
--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
"Nogen gange kan ens liv godt føles som et puslespil, hvor brikkerne
bevæger sig og skifter farve og størrelse når man rører dem."
- Emme, http://emme.dk/2003_11_01_arkiv.html#106840650828914899
| |
Thomas Lindgaard (01-12-2003)
| Kommentar Fra : Thomas Lindgaard |
Dato : 01-12-03 01:21 |
|
>> Jeg går ud fra at det du egentlig gerne vil er noget i retning af:
>>
>> <?php
>>
>> // Hent billede som før
>>
>> // Send billede til klienten
>> Header('den rigtige header som jeg ikke kender');
>> print $image;
>>
>> ?>
>
> Præcis hvad jeg gerne vil.
[snip - noget kode]
Hmm... efter lidt kiggen rundt på php.net:
<?php
$image = " http://images.ucomics.com/comics/ga/2003/ga031130.gif";
header("Content-Type: image/gif");
readfile($image);
?>
Mvh.
/Thomas
| |
Henrik Stidsen (02-12-2003)
| Kommentar Fra : Henrik Stidsen |
Dato : 02-12-03 00:10 |
|
"Thomas Lindgaard" <thomas@it-snedkeren.BLACK_HOLE.dk> wrote in
news:pan.2003.12.01.00.20.39.378077@it-snedkeren.BLACK_HOLE.dk
> Hmm... efter lidt kiggen rundt på php.net:
Hmmm, hvor fandt du den ? - jeg syns da nok jeg har kigget på masser
af sider på php.net :/
Men anyway, det virker. Så skal jeg "bare" lige havde den til at
sende den rigtige content type.
--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
"Nogen gange kan ens liv godt føles som et puslespil, hvor brikkerne
bevæger sig og skifter farve og størrelse når man rører dem."
- Emme, http://emme.dk/2003_11_01_arkiv.html#106840650828914899
| |
Thomas Lindgaard (02-12-2003)
| Kommentar Fra : Thomas Lindgaard |
Dato : 02-12-03 00:52 |
|
On Mon, 01 Dec 2003 23:10:21 +0000, Henrik Stidsen wrote:
> "Thomas Lindgaard" <thomas@it-snedkeren.BLACK_HOLE.dk> wrote in
> news:pan.2003.12.01.00.20.39.378077@it-snedkeren.BLACK_HOLE.dk
>
>> Hmm... efter lidt kiggen rundt på php.net:
>
> Hmmm, hvor fandt du den ? - jeg syns da nok jeg har kigget på masser
> af sider på php.net :/
Mjaeh... jeg fandt den jo ikke lige i sin endelige form :) - men der er jo
et eksempel ala det du gerne ville på php.net/fpassthru og i teksten
ovenover står følgende:
If you just want to dump the contents of a file to the output buffer,
without first modifying it or seeking to a particular offset, you may
want to use the readfile(), which saves you the fopen() call.
> Men anyway, det virker. Så skal jeg "bare" lige havde den til at
> sende den rigtige content type.
Har du overvejet at bruge parse_url()? Noget i retning af:
<?php
$url = ' http://en.server.dk/her/ligger/etbillede.gif';
$parsed_url = parse_url($url);
print $parsed_url['path'];
?>
Extension fås vist nok ved at klippe fra sidste punktum og frem i
$parsed_url['path']. (Men det vil jeg ikke lige hænges op på... :)
Mvh.
/Thomas
| |
Henrik Stidsen (02-12-2003)
| Kommentar Fra : Henrik Stidsen |
Dato : 02-12-03 13:43 |
|
"Thomas Lindgaard" <thomas@it-snedkeren.BLACK_HOLE.dk> wrote in
news:pan.2003.12.01.23.51.59.897153@it-snedkeren.BLACK_HOLE.dk
>> Hmmm, hvor fandt du den ? - jeg syns da nok jeg har kigget på
>> masser af sider på php.net :/
>
> Mjaeh... jeg fandt den jo ikke lige i sin endelige form :) - men
> der er jo et eksempel ala det du gerne ville på
> php.net/fpassthru og i teksten ovenover står følgende:
Og det ironiske her er så at jeg netop har kigget på den side :/
>> Men anyway, det virker. Så skal jeg "bare" lige havde den til
>> at sende den rigtige content type.
>
> Har du overvejet at bruge parse_url()? Noget i retning af:
Næ, har tænkt mig at gøre noget i stil med:
$url = " http://en.server/sti/til/billede.jpeg";
preg_match("/[^\.\/]+$/i", $url, $ext);
Så har vi filens extension i i $ext[0] :)
Iøvrigt kun let omskrevet fra et eksempel på
http://dk.php.net/preg_match
--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
"Nogen gange kan ens liv godt føles som et puslespil, hvor brikkerne
bevæger sig og skifter farve og størrelse når man rører dem."
- Emme, http://emme.dk/2003_11_01_arkiv.html#106840650828914899
| |
Thomas Lindgaard (02-12-2003)
| Kommentar Fra : Thomas Lindgaard |
Dato : 02-12-03 23:38 |
|
"Henrik Stidsen" <nospamforme@hs235.dk> wrote in message
news:Xns94458B96051FHS235dk@130.225.247.90...
> Næ, har tænkt mig at gøre noget i stil med:
> $url = " http://en.server/sti/til/billede.jpeg";
> preg_match("/[^\.\/]+$/i", $url, $ext);
>
> Så har vi filens extension i i $ext[0] :)
Det er så betinget af at der ikke er noget . senere i url'en, f.eks.
http://en.server/billede.jpg?bla=hej.punktum - men det går jeg ikke ud fra
at du kommer ud for i din proxy.
Hyggehej
/Thomas
| |
Henrik Stidsen (03-12-2003)
| Kommentar Fra : Henrik Stidsen |
Dato : 03-12-03 01:37 |
|
"Thomas Lindgaard" <thomas@it-snedkeren.BLACK_HOLE.dk> wrote in
news:bqj48j$k4q$1@sunsite.dk
> Det er så betinget af at der ikke er noget . senere i url'en,
> f.eks. http://en.server/billede.jpg?bla=hej.punktum - men det
> går jeg ikke ud fra at du kommer ud for i din proxy.
Nej det skulle ikke gerne ske eftersom det heromtalte script *kun*
skal tage sig af billeder. Der er et andet der tager sig af alt det
andet.
--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
"Nogen gange kan ens liv godt føles som et puslespil, hvor brikkerne
bevæger sig og skifter farve og størrelse når man rører dem."
- Emme, http://emme.dk/2003_11_01_arkiv.html#106840650828914899
| |
|
|