Enregistre l'image d'un lien dans un dossier

Résolu
shadow578 Messages postés 102 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 27 juin 2011 - 9 sept. 2010 à 15:00
shadow578 Messages postés 102 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 27 juin 2011 - 10 sept. 2010 à 10:07
Bonjour,

Voilà j'ai un lien d'une image toute bête et j'aimerai que automatiquement le lien de mes images enregistre l'image dans dossier que j'aurais indiquer.

Exemple:
http://www.fredzone.org/wp-content/uploads/2009/09/31052009windows1.jpg

Le php fasse un clic droit --> enregistrer ^^

et que l'image maintenant se retrouve dans mon dossier.

Je pense que c'est tout bête mais je n'y arrive pas.

9 réponses

shadow578 Messages postés 102 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 27 juin 2011 1
10 sept. 2010 à 10:03
Bon sachant que file_put_contents replace fopen, fwrite et fclose j'ai décider de l'ai utilisé ^^

<?

$url   = "lien de l'url";
$chemin = "lien dossier";

$nomImage = 'test';

 
if(!$img = file_get_contents($url)) { 
  die('pas de fichier');
}

if(!$f = fopen($chemin.'/test.jpg', 'w')) { 
  die('Ouverture du fichier impossible'); 
} 

if (fwrite($f, $img) === FALSE) { 
  die('Ecriture impossible'); 
} 


fclose($f);  

?>


Et sa marche ! En revanche j'aurai aimé remplacer '/test.jpg' par une variable ($nomImage) mais dés que je remplace par une variable sa ne marche plus.. HELP ^^
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
9 sept. 2010 à 17:36
Salut,

En fait, c'est la réponse qui est toute bête... C'est impossible : PHP est exécuté sur le serveur, pas sur le navigateur.
Par ailleurs, même avec Javascript, c'est impossible : l'action d'enregistrer un fichier sur son disque dur doit OBLIGATOIREMENT être manuelle. Ceci, pour des raisons EVIDENTES de sécurité (tiens, je te mets un lien et hop, tu te retrouves avec un virus ou un trojan sur ton pc, comme c'est amusant).

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
shadow578 Messages postés 102 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 27 juin 2011 1
9 sept. 2010 à 22:17
Pourtant en fouillant sur la toile, j'ai trouvé des scripts qui permettait l'enregistrement d'image dans un dossier en rentrant une url...

Je n'ai pas encore tout maîtriser le code mais bon sa ma l'air faisable.

Exemple: l'upload d'image sur sont disque est possible, et ce que j'ai trouvé est assez similaire sauf que c'est en rentrant un url est non un fichier.

Qu'en pense tu ?
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
9 sept. 2010 à 22:18
J'en pense que je maintiens ma position, pour les raisons que j'ai déjà énoncées.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
10 sept. 2010 à 07:13
Salut,

J'ai comme l'impression que tu n'exprimes pas bien ce que tu souhaites.

Si comme je le sens il s'agit, à partir de ton serveur web, d'enregistrer, sur ce même serveur web, une image distante dont tu connais l'url, alors oui, c'est possible, et je ne vois pas où tu bloques.
Un simple file_get_contents(url_de_l_image);, suivi d'un file_put_contents() devraient suffire.

Bien évidemment, si l'url est obtenue via une formulaire il faudra s'assurer de sa validité, son contenu, etc ...


Cordialement,

Kohntark -
0
shadow578 Messages postés 102 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 27 juin 2011 1
10 sept. 2010 à 09:21
C'est exactement çà kohntark, alors j'ai essayé ce que tu m'as dit. Le problème c'est que j'ai du mal à utiliser file_put_contents.

J'ai essayé çà mais sa me dit des erreurs:

<?php
$chemin = 'chemin du dossier de destination';

$donnee = file_get_contents('url de l'image');
file_put_contents($chemin, $donnee);
?>


J'ai lu sur internet comment marche file_put_contents mais je n'ai toujours pas compris...
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
10 sept. 2010 à 09:30
Ah ouais, c'était pas clair... :/

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
shadow578 Messages postés 102 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 27 juin 2011 1
10 sept. 2010 à 09:50
Je ne comprend vraiment pas comment marche file_put_contents sa ne me copie pas du tout l'image dans mon dossier...
0
shadow578 Messages postés 102 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 27 juin 2011 1
10 sept. 2010 à 10:07
C'est bon sa marche ! Ce n'était qu'une histoire de slash dans mon url ^^

Merci à vous deux :)
0
Rejoignez-nous