Copier une image a partir de son lien url ?

Résolu/Fermé
roswelllge Messages postés 31 Date d'inscription samedi 19 août 2006 Statut Membre Dernière intervention 1 octobre 2008 - 27 juil. 2008 à 14:52
 Gérome - 25 juil. 2017 à 09:46
Bonjour,
je voudrais enregistrer une image qui se trouve sur internet vers mon disque dur.
Comment je pourrais le faire en php ? (j'utilise wamp)
Merci d'avance
A voir également:

3 réponses

Kcazer Messages postés 26 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 13 août 2008 21
27 juil. 2008 à 15:17
Bonjour,

Voila deux solutions, chacune avec leurs avantages et inconvénients:
- Le méthode simple, code très court, mais aucune vérification des erreurs:
<?php
// L'url du fichier
$url = 'http://url.de/l_image';
// Le chemin de sauvegarde
$path = '';
// On recup le nom du fichier
$name = array_pop(explode('/',$url));
// On copie le fichier
copy($url,$path.'/'.$name);
?>


- Le méthode que je conseille fortement, le code est plus long, mais affiche un message en cas d'erreur, et permet de récuperer les images même sur les sites qui utilisent une protection anti-leech.
<?php
// L'url du fichier
$url = 'http://url.de/l_image';
// Le chemin de sauvegarde
$path = '';
// On coupe le chemin
$exp = explode('/',$url);
// On recup l'adresse du serveur
$serv = $exp[0].'//'.$exp[2];
// On recup le nom du fichier
$name = array_pop($exp);
// On genere le contexte (pour contourner les protections anti-leech)
$xcontext = stream_context_create(array("http"=>array("header"=>"Referer: ".$serv."\r\n")));
// On tente de recuperer l'image
$content = file_get_contents($url,false,$xcontext);
if ($content === false) {
	echo "\nImpossible de récuperer le fichier.";
	exit(1);
}
// Sinon, si c'est bon, on sauvegarde le fichier
$test = file_put_contents($path.'/'.$name,$content);
if ($test === false) {
	echo "\nImpossible de sauvegarder le fichier.";
	exit(1);
}
// Tout est OK
echo "\nSauvegarde effectuée avec succés.";
?>


Il est possible de transformer legerement ces deux scripts pour en faire des fonctions, par exemple pour prendre l'url en parametre, et qui retourne true ou false selon le resultat ;]
Idem pour le nom du fichier, ici il est récupéré directement depuis l'url, et aucune verfication n'est faite (si jamais un fichier du meme nom existe deja).

PS: La seconde méthode necessite php 5 au minimum, pour l'utilisation de file_put_contents et des xcontext avec file_get_contents
10
Superbe !
Merci :)
0
je voudrais savoir c'est grâce ton Codage la on peu récupéré les photo d'une page Facebook est les affiché sur ton site sans avoir besoin de les télécharge est les ajouté sur son Ftp ??
0
G&eacute;rome
25 juil. 2017 à 09:46
Script bien fait, merci
0
Bonjour
Moi je chercha la même chose, mais 'copier une image a partir de son url vers un serveur local'
Qualqu'un à une idée ?
Merci !
0
Hello,

Kcazer te donne les 2 solutions pour faire se que tu demandes en commentaire,
apprend juste php et tu comprendra son script, qu'il a deja sacrement detaillé
0
roswelllge Messages postés 31 Date d'inscription samedi 19 août 2006 Statut Membre Dernière intervention 1 octobre 2008 12
27 juil. 2008 à 16:17
Merci beaucoups Kcaser pour ces deux méthodes, j'utilise la premiere, car plus simple pour ce que je fais.

Elle marche nikel Merci
-2
g rien compris merci de me rééxpliquer car j'ai 11 ans !
0
torettodu41 Messages postés 3 Date d'inscription vendredi 26 mars 2010 Statut Membre Dernière intervention 26 mars 2010
26 mars 2010 à 10:26
enregistrer limage puis tu va dan le dossier envoyer vers : ton disk dur
0
@Bloom: expliquer quoi?
tu as 11ans et tu veux deja dev?
bah alors php.net si tu comprend pas les fonctions qu'il utilise,
sinon ses commentaires sont tres explicites
0