Sauvegarder un fichier

Fermé
victoires Messages postés 118 Date d'inscription jeudi 12 mai 2011 Statut Membre Dernière intervention 3 juin 2016 - 27 avril 2016 à 09:50
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 27 avril 2016 à 12:34
Bonjour,

J'ai un lien https://monsite.fr/download.php?id=$idFichier, ce lien me propose le téléchargement du fichier (word ou PDF). Ce ques je souhaite faire est d'automatiser le téléchargement via un script PHP, mais je n'arrive pas à faire fonctionner excatement, voici mon code :

$file = file_get_contents("https://monsite.fr/download.php?id=$idFichier");
file_put_contents("$fileName", $file);


avec ce code j'ai le PDF mais 0 octets !

Quelqu'un a une idée sur comment résoudre ce problème ? et s'il existe d'autres solutions ? Merci d'avance

Cordialement


A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 27/04/2016 à 12:14
Salut,

Tu peux forcer le téléchargement en PHP via les fonctions readfile() et header(), je t'invite à regarder l'exemple de la doc : https://www.php.net/manual/fr/function.readfile.php#example-2663

Une alternative plus simple uniquement en html si ton fichier est directement accessible est d'utiliser l'attribut download sur une balise a :
<a href="http://monsite.com/lien-vers-fichier-pdf.pdf" download>Télécharger le PDF</a>


Bonne journée
0
victoires Messages postés 118 Date d'inscription jeudi 12 mai 2011 Statut Membre Dernière intervention 3 juin 2016
27 avril 2016 à 12:21
merci pour votre réponse, je vais regarder

en fait, je n'ai pas un lien direct vers le PDF, le lien que j'ai me propose un téléchargement manuelle mais je veux automatiser le téléchargement et sauvegarder le fichier directement sur le serveur.
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
27 avril 2016 à 12:34
Je n'avais pas compris que tu voulais l'enregistrer sur le serveur, la solution que je te propose est pour l'enregistrer sur le l'ordinateur de l'internaute.

Pour l'enregistrer sur le serveur ta méthode est la bonne.
Plusieurs points à vérifier :
- la directive php allow_url_fopen doit être activée pour que la fonction file_get_contents puisse télécharger des fichiers distants (à vérifier via phpinfo par exemple)
- vérifier que le chemin renseigné par la variable $fileName est correct
- vérifier que le chemin renseigné par la variable $fileName a les droits d'écritures pour le serveur web

Enfin, penser à activer le rapport d'erreur et l'affichage des erreurs php afin de voir plus facilement d'où vient le problème.
0