Ich habe ein Problem mit dem Download pdf von lokalen Server. Ich habe eine URL zu einer Dokumentdatei (Beispiel: \ 10.10.10.10 \ directory \ 123_ABC.pdf). Ich muss PHP-Funktion machen, die Datei von der URL herunterladen und im Webbrowser anzeigen. Der Zugriff auf dieses Verzeichnis ist geschützt (Benutzername und Passwort). Ich weiß nicht, wie ich diese Datei herunterladen kann. Vielleicht locken? Das ist möglich?PHP und Download-PDF-Datei vom lokalen Server
Ich versuchte dies:
$login = 'LOGIN';
$password = 'PASSOWRD';
$host = "http://10.10.10.10/directory/123_ABC.pdf";
$CurlConnect = curl_init();
curl_setopt($CurlConnect, CURLOPT_URL, $host);
curl_setopt($CurlConnect, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($CurlConnect, CURLOPT_USERPWD, $login.':'.$password);
$Result = curl_exec($CurlConnect);
header('Cache-Control: public');
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="new.pdf"');
header('Content-Length: '.strlen($Result));
v($Result) ;
Die Datei new.pdf im Browser angezeigt wird, aber es ist gebrochen.
EDIT: Ich löste Problem. Ich konnte die PDF-Datei nicht herunterladen, weil ich ein schlechtes Protokoll verwendet habe. Dieser Code ist korrekt:
$login = 'LOGIN';
$password = 'PASSOWRD';
$host = "ftp://10.10.10.10/directory/123_ABC.pdf";
$CurlConnect = curl_init();
curl_setopt($CurlConnect, CURLOPT_URL, $host);
curl_setopt($CurlConnect, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($CurlConnect, CURLOPT_USERPWD, $login.':'.$password);
$Result = curl_exec($CurlConnect);
curl_close ($ch);
header('Cache-Control: public');
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="new.pdf"');
header('Content-Length: '.strlen($Result));
echo $Result;
Welche Methode wird verwendet, um diese Datei mit einem Passwort zu schützen? HTTP-Authentifizierung? – Nima
Setzen Sie die Kopfdaten auf application/pdf und verwenden Sie echo file_get_contents(); und stirb(); – Bernhard