Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]serwowanie grafiki z innegro serwera
Forum PHP.pl > Forum > Przedszkole
sanchoo
Witam! mam serwowac banery z inengo serwera: jelsi sa serwowane to dziala bez problemu zrobilem to tak:

HTML:
  1. <img src="http://XXXXXX/banery/baner_show.php?h=1&id_bl=102&id_bb=44" border="0" alt="n


php:
  1. <?php
  2. $path = 'baners/' . $baner['path_banner']; //$baner['path_baner'] - nazwa pliku 
  3.  
  4.  echo $banery->_showimage($path, $baner['mimetype']);
  5. exit();
  6. ?>


_showimage:
  1. <?php
  2. function &_showImage(&$path, &$type)
  3. {
  4.  
  5. $source = $this->_getSourceFile( $path );
  6. header("Content-type: " . $type);
  7. header("Content-Length: " . strlen($source));
  8. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  9. header("Last-Modified: " . gmDate("D, d M Y H:i:s") . " GMT");
  10. header("Cache-Control: no store, no-cache, must-revalidate");
  11. header("Cache-Control: post-check=0, pre-check=0", false);
  12. header("Pragma: no-cache");
  13. header("Connection: close");
  14. return $source;
  15.  
  16. }
  17. function &_getSourceFile($path)
  18. {
  19. if (!$fp = fopen($path, 'rb'))
  20. {
  21. return false;
  22. }
  23. else
  24. {
  25. $sourceFile = fread($fp, filesize($path));
  26. fclose($fp);
  27. return $sourceFile;
  28. }
  29.  
  30. }
  31. ?>



wszystko dzila ladnie ... jesli nie zmienie $path = 'baners/' np na $path = 'http:// JAKIS INNY SERWER
franki01
Mam nadzieje ze nie robisz:
http:// JAKIS INNY SERWER
tylko
http:// JAKIS INNY SERWER/

Moze w _getSourceFile() zamiast robic z fopen() sprobowac z file_get_contents(). Pamietam ze ostatnio podobne problemy mialem z uzycie tej funkcji pomoglo...


EDIT:
Na poczatku upewnij sie czy na 100% link jest dobry:

  1. <?php
  2. $path = 'baners/' . $baner['path_banner']; //$baner['path_baner'] - nazwa pliku
  3.  
  4. echo $path;
  5. ?>


Skopiuj i wklej do przegladarki i zobacz czy jest taki plik biggrin.gif
sanchoo
"http:// JAKIS INNY SERWER/" tak mam w oryginale:)..

link rowniez jest dobry:(

rozmawiałem z jakimś gosciem powiedział mi tylko ze nagłowek nalezy zmienic...
sprawdze co z file_get_contents()

Dam znac...

file_get_contents() - nie pomoglo sad.gif
franki01
Jaki naglowek? Jak ze swojego serwera odczytuje pliki to nie powinno byc problemu z naglowkiem.
Sprobuj w:
  1. <?php
  2. fopen($path, 'rb'))
  3. ?>

Usunac b:
  1. <?php
  2. fopen($path, 'r'))
  3. ?>


Bo na zdalnym serwerze z tym roznie bywa tongue.gif
sanchoo
to tez nie to :/

'http:// JAKIS INNY SERWER <- skrypt znajduje sie na www.sanchoo.pl a serwowane beda z www.toniesanchoo.pl
z 2 roznych hostingow:)
franki01
To nie wiem ;] Moze warto sprobowac uzyc fsockopen()?
sanchoo
nic z tego :(Ma ktos jeszcze jakis pomysl...doszedlem do wniosku:Dze filsize na urlach nie dziala...
  1. Warning: filesize() [function.filesize]: Stat failed for http://XXX/banery/baners/baner_1_2_1.gif (errno=2 - No such file or directory) in /usr/local/apache/www/htdocs/XXXpublic_html/banery/test.php on line 19
jesli kopiuje link do przegladrki http://XXX/banery/baners/baner_1_2_1.gif ..jest ok. poakzuje mi sie :)DZIALA :)mialemracje problem pojawia sie z pbraniem rozmiaru pliku na innym serwerze.
  1. <?php$sourceFile = fread($fp, 500000);?>
- tak zrobilem.. i dziala... tlyko to tak troche wyglada nie za bardzo:( mozna to jakos poprawic??Mialem zrobic tak ze przy uploadzie baneru dodawac do bazy rozmiar i bylo by ok..ale przy duzych ilosciach wyswietlen szkoda obciazac dodatkowo bazy.Banery sie zmieniaja (rozmiar rowniez winksmiley.jpg)



franki chyle czoło:
  1. <?phpfunction &_getSourceFile($path)
  2.  
  3. {
  4.  return file_get_contents($path);
  5.  
  6. }?>

.. zle uzylem wczensiej fukncji.. az mi glupio...Ps; dzieki dla Wojtka M
sanchoo
okazalo sie ze pojawil sie jeszcze jeden problem smile.gif... moze sie komus przyda

Jesli podawalem url ktory odnosil sie do tego samego serwera to ta funkcja wyzej pomogla smile.gif ale wystarczylo ze zmienie i juz nie...
nie bylo .htaccess a domysle "kradniecie" obrazka .. czy raczej dostep z innego urela jest zabroniony smile.gif

  1. <Limit GET POST HEAD>
  2. order deny,allow
  3. allow from all
  4. #allow from XXXXX
  5. #allow from XXXXXXX
  6. </Limit>
  7. <LimitExcept GET POST HEAD>
  8. deny from all
  9. </LimitExcept>



-------------------------
dodałem [tag] do tematu ponieważ
padły już odpowiedzi
na przyszłość pamiętaj, że dodawanie
[tag]u należy do Ciebie
~Cienki1980
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.