Chroń dokumenty PDF przed bezpośrednim dostępem w adresie URL
Chcę chronić plik pdf przed bezpośrednim połączeniem, ale zamiast tego moi zalogowani użytkownicy będą mieli do niego dostęp. Mam link, który obecnie przechodzi do funkcji javascript, która publikuje formularz: $ ('nameofdoc'). SetProperty ('value', doc); document.getElementById ('sendme'). submit ();
gdzie sendme jest nazwą formularza i nazwy dokumentu, indeksu dokumentu, który chcę wyświetlić.
Następnie przechodzi do pliku php:
$docpath = $holdingArray[0].$holdingArray[1];
$file = $holdingArray[0]; //file name
$filename = $holdingArray[1]; //path to the file]
header( 'Location:'.$docpath ) ;
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="'.$filename . '"');
readfile($filename)
To wszystko działa poprawnie, ładuje plik i wyświetla plik pdf. Nie mogę ochronić katalogu przed bezpośrednim linkowaniem - np. Www.mydomain.com/pathToPdf/pdfname.pdf
Myślałem o użyciu .htaccess do ochrony katalogu, ale jest on na współużytkowanym hoście, więc nie jestem pewien co do bezpieczeństwa, a poza tym, kiedy próbowałem, nie mogę go uruchomić.
Każda pomoc byłaby świetna, ponieważ jest to mój czwarty dzień próby naprawienia tego.
dzięki
Aktualizacja
Bardzo ci pomogłem, ale jeszcze nie jestem.
Mam plik .htaccess, który teraz uruchamia inny plik php, gdy żądany jest plik PDF z katalogu:
RewriteEngine on
RewriteRule ^(.*).(pdf)$ fileopen.php
Gdy plik fileopen.php wyskakuje, nie można otworzyć pliku pdf
$path = $_SERVER['REQUEST_URI'];
$paths = explode('/', $path);
$lastIndex = count($paths) - 1;
$fileName = $paths[$lastIndex];
$file = basename($path);
$filepath = $path;
if (file_exists($file)) {
header( 'Location: http://www.mydomain.com'.$path ) ;
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=".$file);
readfile($filepath);
}else{
echo "file not found using path ".$path." and file is ".$file;
}
Dane wyjściowe nie zostały znalezione przy użyciu ścieżki /documents/6/Doc1.pdf, a plik to Doc1.pdf
ale plik istnieje i jest w tym direcotry - wszelkie pomysły?
OK Z przyjemnością informuję, że Jaroslav naprawdę pomógł mi rozwiązać problem. Jego metoda działa dobrze, ale trudno jest ustawić wszystkie rzeczy w katalogu. W końcu spędziłem kilka godzin bawiąc się kombinacjami, aby to działało, ale zasada, którą dał, działa dobrze. Dzięki