Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Readfile() - Obrazki - Problem
Forum PHP.pl > Forum > PHP
Mechanikzsz
Hello,

Mam mały problem z funkcją readfilie()

Gdy chcę otworzyć obrazek z innego folderu niż ten gdzie jest zapisany plik php z daną funckją wyskakuje mi błąd:

Obrazek "nazwastrony.cba.pl/ukryjlink.php?img=1” nie może zostać wyświetlony, ponieważ zawiera błędy.

Kod:

  1. <?
  2.  
  3.  
  4.  
  5. if($_GET['img']==='1'){
  6. $patch = '../xyz/';
  7. $file = "888.jpg";
  8. $image=$patch.$file;
  9. header("Content-Type: image/jpeg");
  10. @readfile($image);
  11. }
  12.  
  13.  
  14.  
  15.  
  16.  
  17. ?>


Jezeli otwieram plik z tej samej lokalizacji wszystko działa poprawnie:

Kod:

  1. <?
  2.  
  3.  
  4.  
  5. if($_GET['img']==='1'){
  6. $file = "888.jpg";
  7. header("Content-Type: image/jpeg");
  8. @readfile($file);
  9. }
  10.  
  11.  
  12.  
  13.  
  14.  
  15. ?>



Ma ktoś jakiś pomysł w czym może być problem ? smile.gif

Dzięki za pomoc smile.gif
ssstrz
sprawdz co zwroca funkcje is_readable i dla pewnosci file_exist. sprobuj takze funkcje file_get_contents
Mechanikzsz
Cytat(ssstrz @ 26.05.2013, 17:40:00 ) *
sprawdz co zwroca funkcje is_readable i dla pewnosci file_exist. sprobuj takze funkcje file_get_contents



po zamianie funkcji readfile() na:

- is_readable()
- file_exist()
- file_get_contents()

występuje ten sam błąd "Obrazek "nazwastrony.cba.pl/ukryjlink.php?img=1” nie może zostać wyświetlony, ponieważ zawiera błędy."
mar1aczi
Napisz odrobinę dokładniej jak masz skonstruowany kod i akcje między skryptami (chcesz aby działały).
rocktech.pl
Witam.

Spróbuj obiektowo. Pamiętaj ścieżka bezwzględna do pliku np. /home/www/projekt/img/888.jpg

  1. if ( isset($_GET['img']) && $_GET['img'] == '1' ) {
  2.  
  3. $file = new SplFileObject(SCIEZKA_BEZWZGLEDNA ,"rb");
  4.  
  5. header("Content-Type: image/jpeg");
  6. header("Content-Length: " . $file->getSize());
  7.  
  8. $file->fpassthru();
  9. }
Mechanikzsz
Cytat(mar1aczi @ 27.05.2013, 08:27:50 ) *
Napisz odrobinę dokładniej jak masz skonstruowany kod i akcje między skryptami (chcesz aby działały).


Ogólnie chodzi o to by ukryć link do katalogu z plikiem zdjęciem w kodzie strony.

np. <img src='www.xyz.cba.pl/ukryjlink.php?go=1'>

Teraz próbuję napisać taki oto prosty skrypcik(stronę) by otwierał odpowiednie zdjęcie przy zmianie ID:

www.xyz.cba.pl/ukryjlink.php?go=(numer ID)



Cytat(rocktech.pl @ 27.05.2013, 08:39:47 ) *
Witam.

Spróbuj obiektowo. Pamiętaj ścieżka bezwzględna do pliku np. /home/www/projekt/img/888.jpg

  1. if ( isset($_GET['img']) && $_GET['img'] == '1' ) {
  2.  
  3. $file = new SplFileObject(SCIEZKA_BEZWZGLEDNA . "rb");
  4.  
  5. header("Content-Type: image/jpeg");
  6. header("Content-Length: " . $file->getSize());
  7.  
  8. $file->fpassthru();
  9. }



  1. <?
  2.  
  3. if ( isset($_GET['img']) && $_GET['img'] == '1' ) {
  4.  
  5. $file = new SplFileObject('http://nazwastrony.cba.pl/image/Snake1.jpg' . "rb");
  6.  
  7. header("Content-Type: image/jpeg");
  8. header("Content-Length: " . $file->getSize());
  9.  
  10. $file->fpassthru();
  11. }
  12.  
  13. ?>



plik nie wyświetla się tzn. Biała strona
rocktech.pl
Ścieżka a nie URL smile.gif

  1. echo __DIR__;
Mechanikzsz
  1. <?
  2.  
  3. if ( isset($_GET['img']) && $_GET['img'] == '1' ) {
  4.  
  5. $file = new SplFileObject('/image/Snake1.jpg' . "rb");
  6.  
  7. header("Content-Type: image/jpg");
  8. header("Content-Length: " . $file->getSize());
  9.  
  10. $file->fpassthru();
  11. }
  12.  
  13. ?>



Tak również nie działa sad.gif Próbuje już na różne sposoby smile.gif


Hmm... może wróćmy do początku smile.gif w czym może być problem iż skrypt bez ścieżki do katalogu działa a skrypt z ścieżką do katalogu nie sad.gif

  1. <?
  2.  
  3.  
  4.  
  5. if($_GET['img']==='1'){
  6. $file = "888.jpg";
  7. header("Content-Type: image/jpeg");
  8. @readfile($file);
  9. }
  10.  
  11.  
  12.  
  13.  
  14.  
  15. ?>



rocktech.pl
Edytowałem mój post była literówka.

  1. //$file = new SplFileObject('/image/Snake1.jpg' . "rb");
  2. $file = new SplFileObject('/image/Snake1.jpg' ,"rb");


Włącz raportowanie błędów!

  1. ini_set('display_errors',1);
  2. ini_set('display_startup_errors',1);


Przyjmij do wiadomości , że musisz podać poprawną ścieżkę do pliku!

Mechanikzsz
Cytat(rocktech.pl @ 27.05.2013, 09:41:05 ) *
Edytowałem mój post była literówka.

  1. //$file = new SplFileObject('/image/Snake1.jpg' . "rb");
  2. $file = new SplFileObject('/image/Snake1.jpg' ,"rb");


Włącz raportowanie błędów!

  1. ini_set('display_errors',1);
  2. ini_set('display_startup_errors',1);


Przyjmij do wiadomości , że musisz podać poprawną ścieżkę do pliku!




Kod:

  1. <?
  2.  
  3. if ( isset($_GET['img']) && $_GET['img'] == '1' ) {
  4.  
  5. $file = new SplFileObject('/image/EventSnake1.png' , "rb");
  6. ini_set('display_errors',1);
  7. ini_set('display_startup_errors',1);
  8.  
  9. header("Content-Type: image/png");
  10. header("Content-Length: " . $file->getSize());
  11.  
  12. $file->fpassthru();
  13. }
  14.  
  15. ?>



Wynikiem czego jest = Biała strona....
mar1aczi
Kod
/image/EventSnake1.png
To na pewno jest poprawna ścieżka do pliku obrazka?
Czy nie jest przypadkiem tak, że skrypt php masz przyjmijmy - w aktualnym katalogu, a w nim katalog image, a w tym katalogu dopiero pliki (obrazki)?
Jeśli tak, to ścieżka będzie wyglądać
Kod
./image/EventSnake1.png
bądź
Kod
image/EventSnake1.png
rocktech.pl
Cytat
Wynikiem czego jest = Biała strona....


www.xyz.cba.pl/ukryjlink.php?go=(numer ID)

Stawiam na :

www.xyz.cba.pl/ukryjlink.php?img=(numer ID)
Mechanikzsz
Cytat(mar1aczi @ 27.05.2013, 09:53:50 ) *
Kod
/image/EventSnake1.png
To na pewno jest poprawna ścieżka do pliku obrazka?
Czy nie jest przypadkiem tak, że skrypt php masz przyjmijmy - w aktualnym katalogu, a w nim katalog image, a w tym katalogu dopiero pliki (obrazki)?
Jeśli tak, to ścieżka będzie wyglądać
Kod
./image/EventSnake1.png
bądź
Kod
image/EventSnake1.png


Dziękuję za pomoc ")

Działa ^^
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.