Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Blokowanie pobrania plików i redyrekcja do innego
Forum PHP.pl > Forum > PHP
ppietras86
Witam wszystkich

Zrobiłem aplikację, która konwertuje większość typów plików tekstowych na pdf a potem na swf i w tej ostatniej postaci jest wyświetlanie w oknie przegladarki.

Może wytłumaczę jak to działa.
Posiadam trzy foldery na serwerze: pliki, pdf, swf

Poprzez prosty formularza wybieram z dysku plik np. plik.doc po kliknięciu w przycisk wyślij, plik jest wysyłany na serwer do folderu "pliki". Potem skrypt konwertuje "plik.doc" do formatu .pdf i zapisuje go w folderze "pdf" jako plik.pdf, później plik konwertowany jest do formatu .swf i zapisywany jest w folderze "swf" jako plik.swf i w takiej postaci wyświetlany jest jako flash w przeglądarce.

Zatem w każdym folderze znajduje się po jednym pliku tego samego dokumentu w innych formatach.

Zależy mi aby nikt nie był w stanie pobrać plików z folderów "pliki" oraz "pdf". Tylko folder "swf" jest przeznaczony do wyświetlania plików właśnie w tym formacie.

Przykładowo:
Chcę aby po wpisaniu w przeglądarkę linku http://localhost/www/pliki/plik.doc lub http://localhost/www/pdf/plik.pdf przeglądarka nie wysyłała użytkownikowi tego właśnie pliku a przekierowała go do właściwego folderu i przekonwertowanego pliku swf czyli http://localhost/www/swf/plik.pdf i aby tylko w takiej formie użytkownik mógł go pobrać.

Podpowiedzcie proszę jak to zrobić bo szukałem na tym forum postów o podobnej tematyce i nie znalazłem a sam nie bardzo się orientuję :/
Mephistofeles
Szukaj: .htaccess i mod_rewrite
ppietras86
OK już czytam i grzebię smile.gif

A da się jakoś z poziomu PHP? gdyby to powyżej było zablokowane na serwerze?
Mephistofeles
I tak i nie. Musisz najpierw przechwycić żądanie, a do tego potrzebny jest mod_rewrite. Możesz natomiast umieścić te pliki tak, żeby były niedostępne (np. ponad public_html) i odwoływać się do nich przez skrypt.
ppietras86
Zrobiłem coś takiego (prawie działa)

RewriteEngine On
RewriteRule ^/?(.*)\.(doc|docx)?$ /swf/$1.swf [NC,R]


Prawie - już tłumaczę czemu.

Po wpisaniu do przeglądarki http://localhost/www/pliki/plik.doc przekierowuje mnie na http://localhost/www/swf/pliki/plik.swf

Jak zmodyfikować kod powyżej aby wchodził mi do http://localhost/www/swf/plik.swf questionmark.gif

Zamiast zapamiętywać sama nazwę pliku czyli plik to zapamiętuje /pliki/plik

Co mam zmienić w kodzie? Ślęczę nad tym ale nic nie przychodzi mi do głowy od dłuższego czasu
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.