Faire télécharger un fichier PDF au serveur

Eléphanteau du PHP | 32 Messages

10 juin 2006, 14:19

Bonjour,

J'aimerais savoir comment faire pour qu'un script PHP, au quel je lui donne en variable, l'adresse d'un fichier PDF, qu'il me le télécharge puis le place dans un dossier approprié.

En fait j'utilise déjà, une méthode similaire avec un formulaire d'envoi de fichier (le cas classique quoi) mais j'aimerais lui fournir une adresse URL quand le PDF est déjà sur un autre serveur pour qu'il me télécharge une copie.

Un grand merci d'avance.

Eléphant du PHP | 451 Messages

10 juin 2006, 14:40

As tu essayé fopen() ?
Ca permet d'ouvrir un fichier ou une url.
Tu lui donnes l'url du fichier pdf et tu dois pouvoir alors le lire, ne te reste plus qu'à l'écrire dans le fichier qui te convient, je pense.
J'ai pas essayé mais ça devrait marcher...
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Eléphanteau du PHP | 32 Messages

10 juin 2006, 16:08

J'ai regardé du coté de fread() et je pense que ça correspon à mes besoins.
Par contre je n'arrive pas à trouver comment je réécris le fichier à un autre endroit sur mon serveur (il faudrait qu'il puisse lire le PDF correctement non ?).

Eléphanteau du PHP | 32 Messages

10 juin 2006, 18:19

J'ai trouvé de quoi faire ma fonction, voici le résultat :
function get_pdf($url) {
	
	$fichier = fopen($url,'rb');

	$contenu = '';
	while (!feof($fichier)) {
	  $contenu .= fread($fichier, 8192);
	}
	
	$tmpfname = tempnam($_ENV["DOCUMENT_ROOT"]."/dl", "erreur");
	$handle = fopen($tmpfname, "w");
	fwrite($handle, $contenu);

	$exp = explode("/", $url);
	$nb = count($exp);
	$nb = $nb-1;
	$nom_fichier =$exp[$nb];
	
	rename($tmpfname, "/home/www/site/www/test/".$nom_fichier);

	if (fclose($handle)) {
		echo "OK";
	}
	else { echo "PB"; }
	
}
Elle marche parfaitement si je lui indique un PDF de mon serveur mais patine sans donner de résultat si je lui donne un URL externe, une idée ?

Merci d'avance