Pobieranie plików z bazy danych

0

Witajcie!
Posiadam system jaki umożliwia pobieranie plików zalogowanym użytkownikom.
Obecnie są one w katalogu. Ale jeśli ktoś raz pobierze plik to wie w jakim miejscu
są inne. Może więc wejść bezpośrednio z przeglądarki i pobierać co chce.

Czy mozna zapisać pliki w bazie danych? Jak to zrobić? Jak je potem z niej
pobrać?

Może jest jakieś inne zabezpieczenie?

0

w .htaccess blokujesz dostęp do folderu, plik podajesz przez osobny skrypt który w najprostszej postaci wygląda tak:

Header('Content-type: typ/mime');
@Readfile('pliki/' . $_GET['co tam chcesz']);

$_GET trzeba przefiltrować ze znaków "." i "/" głównie bo się zrobi niebezpiecznie
poszukaj chwile to znajdziesz milion bardziej rozbudowanych skryptów tylko w tym serwisie
jest tu nawet skrypt który umożliwia wznawianie ściągania
skrypt ściągania, downloadu

umieszczanie plików w bazie danych to głupi pomysł

0

dac chmody plikowi na 0000 i Readfile do pliku... i odpowiednie nagłowki jak pisał fsadgasdg

0

ciekawe jak odczytasz plik z chmodem 000 :/

0

chyba że php będzie właścicielem a apache nie, wtedy chmod 700 na folder to nie głupi pomysł

0

Ale do tego trzeba mocno kombinować. PHP w 99% przypadków ma te same prawa co apache. Dużo prościej jest napisać prosty .htaccess blokujący dostęp do danego katalogu bezpośrednio przez apache i już.

0

dokładnie, php musiałoby pracować jako cgi, plik musiałby być utworzony (uploadowany, lub kopiowany) przez php, lub ręcznie trzeba by było zmienić właściciela, w dodatku rozwiązanie utrudnione na windowsie, więc tak jak mówiłem .htaccess
tu masz pełne rozwiązanie z licznikiem pobierań: http://4programmers.net/Forum/239796
wystarczy wyrzucić linijkę odpowiadającą za zliacznie i masz gotowca

1 użytkowników online, w tym zalogowanych: 0, gości: 1