Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Foto w DB czy tylko odnośniki.
Forum PHP.pl > Forum > PHP
Lk_hc
Czy warto w bazie składować zdjęcia w BLOBach czy lepiej w DB trzymać tylko linki bezwzględne do fotek znajdujących się na dysku. Dodam, że zależy mi aby utrudnić dostęp hurtowy do zdjęć.
Riklaunim
Na dysku. Wystarczy że do nazw plików (jeżeli nazwy są łatwe do odgadnięcia) dodasz jakieś losowe ciągi znaków np. fotka_w393kjsa.jpg i z automatu pobrać wszystkiego nie będzie można.
flashdev
Temat poruszany wiele razy.

A jeśli chodzi o utrudnienie hurtowego dostępu, to najlepiej zrób jakieś ograniczenia na IP.

Cytat(Riklaunim @ 29.12.2008, 11:52:26 ) *
Na dysku. Wystarczy że do nazw plików (jeżeli nazwy są łatwe do odgadnięcia) dodasz jakieś losowe ciągi znaków np. fotka_w393kjsa.jpg i z automatu pobrać wszystkiego nie będzie można.


Pod warunkiem, że nie znamy adresów do tych plików. A pliki zazwyczaj umieszcza się na serwerze po to aby użytkownicy mogli je ściagać, więc te adresy też będzie mozna wyciągnać jakimś botem z treści strony.
krowal
Możesz jeszcze zabezpieczyć fotki znakiem wodnym i przepuszczać je przez skrypt php, który będzie ten znak rysował w locie (bez zmian w oryginale) a katalog z fotkami zabezpieczyć całkowicie przez blokowanie w .htaccess
Lk_hc
Cytat(flashdev @ 29.12.2008, 12:21:01 ) *
A pliki zazwyczaj umieszcza się na serwerze po to aby użytkownicy mogli je ściągać, więc te adresy też będzie można wyciągnąć jakimś botem z treści strony.

W tym przypadku nie żeby ściągać, a żeby oglądać. W pełni zgadzam się co do problemu przeskanowania kodu źródłowego przez jakiegoś bota. Tego problemu uniknąłbym właśnie poprze składowanie Foto w DB. Nie jest to chyba taki tragiczny pomysł. Zdjęcia są małe.

Cytat(krowal)
...katalog z fotkami zabezpieczyć całkowicie przez blokowanie w .htaccess


Katalog to mogę spokojnie zapodać nawet poza public_html - to nie jest problem.
flashdev
Cytat(Lk_hc @ 29.12.2008, 12:51:48 ) *
W tym przypadku nie żeby ściągać, a żeby oglądać. W pełni zgadzam się co do problemu przeskanowania kodu źródłowego przez jakiegoś bota. Tego problemu uniknąłbym właśnie poprze składowanie Foto w DB. Nie jest to chyba taki tragiczny pomysł. Zdjęcia są małe.
Katalog to mogę spokojnie zapodać nawet poza public_html - to nie jest problem.


Tutaj miałem na myśli, że obejrzenie = ściagniecie smile.gif
Nie rozumiem w jaki sposób chcesz uniknąć tego problemu przez umieszczenie danych w bazie.
W dalszym ciągu, aby je odczytać musisz podać do zdjęcia link. I nie ważne czy to będzie link zakończony ".jpg" czy ".php" bot w dalszym ciągu będzie mógł zebrać wszystkie linki i ściągnąć dane.
Trudno wybrać sensowne wyjście z problemu nie wiedząc do czego to ma być zastosowane.
W każdym razie wyjścia jakie mi sie na suwaja to:
- ograniczenie ilości zdjeć/ilości MB na dany IP
- prośba o wpisanie odczytanie captcha
- prośba o wpisanie odczytanie captcha w przypadku przekroczenia limitu
- limit na danego użytkownika, jeżeli oglądanie zdjeć wymaga zalogowania się
Lk_hc
Jak z tego zrobić obrazek: http://loko.rootnode.net/sf/web/firstmod/pic
?

Kod pliku:
  1. <?php
  2. if (!empty($img))
  3. {
  4. //Change content type to your file type
  5. header("Content-Type: image/tif");
  6. print_r ($img);
  7. }
  8. ?>


$img to BLOB, obrazek wyciągnięty z bazy.
Riklaunim
tam masz obiekt, a nie tylko sam kod grafiki.

PS. na dużą skalę wydajne to to nie będzie smile.gif
Lk_hc
No raczej nie. I tak chyba zrobię to poprzez składowanie odnośników w DB ale chce okiełznać tego pieprzonego BLOBa dla własnej satysfakcji sciana.gif
smile.gif
flashdev
Cytat(Lk_hc @ 29.12.2008, 15:10:41 ) *
Jak z tego zrobić obrazek: http://loko.rootnode.net/sf/web/firstmod/pic
?

Kod pliku:
  1. <?php
  2. if (!empty($img))
  3. {
  4. //Change content type to your file type
  5. header("Content-Type: image/tif");
  6. print_r ($img);
  7. }
  8. ?>


$img to BLOB, obrazek wyciągnięty z bazy.



To co jest zwracane z pod tego adresu napewno nie jest kodem obrazka. Przynajmniej nie jest to sam obrazek tak jak Riklaunim wspomniał.
I sprawdź jeszcze czy nie wysyłasz enterów (\n\r) przed wysłaniem nagłówka, bo przeglądarka powinna to chociaż próbować wyświetlić jako obrazek tiff.
Lk_hc
Usunąłem spacje i jakieś inne takie pierdoły - ciągle to samo czyli krzaki. Jak sobie poradzić z tym obiektem?

Solved

Obrazek się nie wyświetlał bo był wstawiony w widok, który to widok tworzy symfony a więc headery rozpieprzone były. Zrobiłem SfView::NONE, $response->setContentType('image/jpg'), $response->setContent(zmienna zawierająca kod obrazka); i jest ok.

To już chyba offtop trochę wstydnis.gif

party.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.