Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Kodowanie obrazkow do *.php?
Forum PHP.pl > Forum > PHP
frees
Witam,
mam do napisania w php uploadera plikow graficznych. O ile z samym uploaderem nie mialem problemow, to szukam skryptu, ktory zakoduje/przekonwertuje mi pobierane obrazki do formatu php, tak aby nie mozna bylo sie do nich bezposrednio odwolac (przy bezposrednim odwolaniu ma pojawiac sie komunikat z bledem 404). Oczywiscie skrypt musi takze pozwalac na odkodowanie obrazka.

Podobno w internecie pelno jest takich skryptow, ale nie wiem pod jakim haslem szukac.

Z gory dzieki za pomoc.
Pozdrawiam.
Speedy
Odnoszę wrażenie, że sam nie wiesz, co masz napisać tongue.gif. Jak można zakodować obrazek do php? Można co najwyżej odczytać lub przetworzyć obrazek z poziomu php.
Wgrywaj sobie te wszystkie obrazki do jakiegoś jednego katalogu, a następnie wgraj do niego plik o nazwie: .htaccess, w którym napiszesz: Deny from all.
Wtedy nie będzie się dało odwołać do obrazka bezpośrednio.
Za pomocą php będziesz mógł się do niego odwołać wysyłając odpowiednie nagłówki. Np. tak:

  1. <?php
  2. header('Content-Type: image/jpeg');
  3. header('Content-Disposition: inline; filename=file.jpg');
  4. ?>
frees
W sumie wiem, ze do konca tego nie rozumiem smile.gif Moze napisze wytyczne, jakie dostalem: Jest uploader plikow, klikam Przegladaj, wybieram jakis obrazek, np. plik.jpg. Daje wyslij i skrypt ma mi go zapisac w folderze upload jako plik.php. I jak odwolam sie bezposrednio do pliku www.adres_jakis_tam.pl/uploader/plik.php, to pojawi sie blad 404. Natomiast jak chce gdzies wkleic ten obrazek, to jako src w <img> podaj dekodowanie.php?go=plik.php, gdzie dekodowanie.php zawiera skrypt "dekodujacy".

Sam uploader wykonuje jeszcze wiele innych funkcji, ale nie sa one z tym akurat zwiazane.
Kocurro
Encoder:

  1. <?php
  2.  
  3. $fpInput = open( $_FILES['plik']['tmp_name'], 'r' );
  4. $sBuffer = ''' . base64_encode( fread( $fpInput ) ) . ''';
  5. fclose( $fpInput );
  6.  
  7. $fpOutput = open( $_FILES['pliczek']['name'] . ' .php', 'w' );
  8. $sBuffer = '<?php echo( base64_decode( . ' $sBuffer . ' ) );' . "\n" );
  9. fwrite( $fpOutput, $sBuffer );
  10. fclose( $fpOutput );
  11. ?>


Nie sprawdzałem czy działa - sam concept jest dobry smile.gif

pozdrawiam,
Łukasz
frees
Cytat(Kocurro @ 12.08.2008, 22:03:19 ) *
Encoder:

(...)

Nie sprawdzałem czy działa - sam concept jest dobry smile.gif

pozdrawiam,
Łukasz


Nie dziala, ale naprowadzil mnie jak to zrobic. Ogolnie nie ma z tym wielkiego problemu. Zrobilem to tak, ze "zakodowany" obrazek wkleja do pliku php. Na poczatku tego pliku dopisuje mi linie:

  1. <?php header("HTTP/1.0 404 Not Found"); 


a na koncu zamykam komentarz i php. Potem czytam tylko druga linie pliku i wklejam ja do <img>.

Niestety nie dziala to pod IE, tzn obrazek nie wyswietla sie.
rzymek01
chyba najmniej inwazyjna metoda:

obrazki umieść w osobnym katalogu, gdzie dasz htaccess deny from all (problem userów z główy, teraz jak je wyświetlić?)

otóz piszesz sobie plik php, w który pobiera dane obrazki, ich nazwe mozna podać poprzez $_GET, a w treści pliku:
  1. <?php
  2. header('content-type: image/jpeg'); // przykład dla jpega :)
  3.  
  4. echo file_get_contents('./tajny_katalog/' . $_GET['nazwa_obraka']);
  5. ?>


smile.gif
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.