Page 1 sur 1

Faire télécharger un fichier PDF au serveur

Posté : 10 juin 2006, 14:19
par Belisarius
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.

Posté : 10 juin 2006, 14:40
par jpaul
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...

Posté : 10 juin 2006, 16:08
par Belisarius
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 ?).

Posté : 10 juin 2006, 18:19
par Belisarius
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