
Tworzę sobie kawałek kodu, który umożliwia download plików, ale tylko po zalogowaniu. Wpadłem na pomysł, żeby katalog, w którym trzymam pliki przenieść powyżej DocumentRoot. Na forum znalazłem podobne rozwiązania. Niby wszystko działa, tzn plik podczas upload-u jest przenoszony do odpowiedniego katalogu:
<?php //zapisz plik chmod("/home/mateusz/files/$nowy_plik",0755); ?>
Dane o plikach są trzymane w bazie. Link do pliku wygląda tak:
<?php ?>
Następnie w pliku download_file.php mam kawałek kodu:
<?php $autoryzowany = $_SESSION['autoryzowany']; //jesli ktos wywolal download_file.php if($autoryzowany != 1){ $_SESSION['error_msg'] = "Nie masz dostępu do tego pliku. Zaloguj się."; } else{ $file_id = $_REQUEST['file_id']; $plik = "/home/mateusz/files_G2/$file_id"; } ?>
Niestety powyższy kod prowadzi do błędu ($file_id = "winamp.exe") :
Not Found The requested URL /home/mateusz/files_G2/winamp.exe was not found on this server.
Prawa do plików - 755, prawa do katalogu z plikami - 777
Co robie źle? Podejrzewam, że nieodpowiednio używam f-cji header(). Jak więc zapisać plik? Czy koniecznie muszę bawić sie w jakieś zczytywanie linijek w pętlach? Nie ma w php jakieś hunkcji, ktora po prostu podaje plik do ściągnięcia?
Z góry bardzo dziękuje i pozdrawiam