Enregistrer une image sur mon serveur en PHP

Fermé
hcase - 10 févr. 2012 à 15:35
martouf Messages postés 40 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 25 mars 2013 - 25 mars 2013 à 11:34
Bonjour,

Voilà, il existe, sur un site internet qui ne m'appartient pas, des images ayant chacune un nom particulier (que je connais) en png. Je voudrais, à la demande (donc lors du lancement d'un certain script php), récupérer une de ces images, en désignant dans le script le chemin exact jusqu'à cette image. Je voudrais qu'en ayant simplement l'url de cette image, php enregistre cette image sur MON serveur, dans un dossier particulier, et que cette image garde son nom d'origine (ou pas). Je m'arrache les cheveux à trouver quelque chose de tel... Je n'ai aucune base de script à fournir vu que tout ce que j'ai essayé échoue, car la plupart du temps, les fonctions trouvées ne font pas ce que je voudrais...
Si quelqu'un peut m'aider, ce serait génial ! Merci d'avance :)

PS: Je sais que le site en question autorise la récupération des images, donc cela ne devrait pas poser de problème.

A voir également:

3 réponses

Donc en fait, vous voulez aspirer les images d'un site... faites quand même attention aux droits d'auteur qu'il y a sur les images...

Ceci dit, une recherche sur la doc de PHP vous aurez apportée une réponse, concrètement vous voulez ouvrir un fichier et l'enregistrer quelque part et PHP a justement des fonctions pour ça :

file_get_contents -- Lit tout un fichier dans une chaîne
file_put_contents -- Écrit un contenu dans un fichier

Si vous avez déjà essayé ces deux fonctions et que cela ne fonctionne pas, il faudra vous reposer la question, à savoir si le site autorise vraiment la récupération des images.

Ceci dit, un site qui présente le même contenu qu'un autre site n'est jamais très bien vu, à bon entendeur.
2
Ah non je ne les voles pas, je ne les aspires pas ^^ Il s'agit à vrai dire de skins minecraft, et je souhaitais pouvoir récupérer ceux des joueurs présent sur mon serveur minecraft, pour les afficher ensuite dans leur profils sur mon forum. Mais j'ai résolu mon problème, j'ai utilisé la commande copy, et en fait le probleme venait du fait que je n'avais pas mis "allow_url_open" sur On dans php.ini, ce qui bloquait le processus. Merci quand même :) :)

Pour ceux qui auraient besoin du code:

<?php
$file = 'http://lesite.com/images/nomdelimage.png';
$newfile = 'mesimages/nomdelimage.png';
copy($file,$newfile);
?>

Sachant que les deux noms d'image peuvent etre different
1
martouf Messages postés 40 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 25 mars 2013 18
25 mars 2013 à 11:34
Désolé de déterrer mais j'ai bien allow_url_fopen sur "On" et pourtant mon script (qui est identique à celui au dessus) revoie une erreur :
 Warning: copy(http://**.**.***.***:21092/image.jpg) [function.copy]: failed to open stream: Network is unreachable in /mnt/133/sda/2/d/*******/********.php on line 13
le fichier est dans MurImg/25-03-2013-11-26.jpg  


Pourtant en local (avec wampserver) ce même script fonctionne très bien.
info sur mon serveur ici : http://piegaym.free.fr/info.php/

Si vous pouvez m'aider (je débute en PHP), je vous remercie d'avance
Martin
0
Ah ok je préfère lire ça ^^

Merci du code, ça en aidera peut-être d'autres ;)
0