J'ai un problème avec le téléchargement de pdf à partir du serveur local. J'ai une URL vers un fichier de document (exemple: \ 10.10.10.10 \ directory \ 123_ABC.pdf). Je dois faire la fonction php qui télécharger le fichier de l'URL et le montrer dans le navigateur Web. L'accès à ce répertoire est protégé (nom d'utilisateur et mot de passe). Je ne sais pas comment je peux télécharger ce fichier. Peut-être curl? C'est possible?PHP et télécharger le fichier pdf à partir du serveur local
J'ai essayé ceci:
$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) ;
Le fichier new.pdf est affiché dans le navigateur, mais il est cassé.
EDIT: J'ai résolu le problème. Je n'ai pas pu télécharger le fichier pdf car j'ai utilisé un mauvais protocole. Ce code est correct:
$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;
Quelle méthode est utilisée pour protéger ce fichier par mot de passe? Authentification HTTP? – Nima
Définissez les données d'en-tête sur application/pdf et utilisez echo file_get_contents(); et meurt(); – Bernhard