[Resolu] Comment enregistrer une image distante?

Comment enregistrer une image distante? [Resolu] - PHP - Programmation

Marsh Posté le 13-08-2004 à 13:30:41    

Bonjour,
 
je suis entrain de faire un petit script qui recupere des infos sur des sites et les enregistre dans un base de donnee. Pour le texte je n'ai aucun probleme, il en est tout autrement des images  :pt1cable:  
En analysant le code je peux recuperer l'adresse http de l'image, mais aussi bete que ça paraisse, je n'arrive pas a l'enregistrer! Je voulais d'abord utiliser "fopen" pour ensuite enregistrer l'image localement, mais l'ouverture d'image distante ne fonctionne pas sous windows!!! Comme j'ai pas specialement envie de passer a linux pour un probleme tout bete, peut etre que quelqu'un a une idee?
Merci de votre aide


Message édité par lio09 le 18-08-2004 à 15:02:16
Reply

Marsh Posté le 13-08-2004 à 13:30:41   

Reply

Marsh Posté le 13-08-2004 à 13:51:51    

pkoi tu cherche à enregistrer les images en local ??? tu arrive à récupérer leur adresse, donc tu peux les afficher sans avoir à les héberger...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 13-08-2004 à 14:00:06    

C'est simplement pour une question de securite, le jour ou le site n'existera plus, j'aurai tout fait pour rien. Et puis ça permet aussi une consultation offline en intranet avec des images, voila

Reply

Marsh Posté le 13-08-2004 à 14:07:29    

ok pour la 2eme raison(consultation locale), pake sinon quand le site n'existera plus, plus besoin qu'il soit référencé dans ta base ;)
 
Ben je l'ai jamais mis en oeuvre mais ya des script qui permette au visiteur d'UPLOADER des fichiers vers un site internet...
Tu regarde comment c'est fait et tu simule un UPLOAD de l'image depuis le site que tu scrute vers le tiens (tu à l'adresse de l'image, c'est tout ce qu'il te faut).
 
Je sais pas ce que ça peut donner vu que je l'ai jamais mis en oeuvre, mais bon sur le principe je suppose que ça doit marcher :D


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 13-08-2004 à 14:13:11    

Je ne suis pas tout a fait sur non plus, mais l'upload de fichier ne fonctionne qu'avec un formulaire, et je n'utilise pas de formulaire, j'aimerais bien trouver autre chose...

Reply

Marsh Posté le 13-08-2004 à 14:28:20    

As tu regardé la fonction fsockopen() ?


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 13-08-2004 à 14:36:55    

j'utilise fsockopen() deja pour recupérer le texte, tu crois que c'est possible aussi d'enregistrer les images???

Reply

Marsh Posté le 13-08-2004 à 14:52:30    

Je n'en sais rien, mais pourquoi cela ne fonctionnerai pas ? je crois que ça vaut le coup d'essayer.


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 13-08-2004 à 14:58:14    

En fait, j'ouvre deja une connexion socket.
 
Ensuite je balance un un "GET / HTTP/1.1" pour recuperer le code html. Je ne sais pas comment faire pour avoir l'image, je suis peut etre tout pret mais il me manque quelque chose... par analogie "GET / JPG/1.0" ne fonctionne pas :D

Reply

Marsh Posté le 15-08-2004 à 14:27:30    

Je n'ai toujours pas trouve de solution  :??:  
Un petit coup de pouce?
 
 :bounce:

Reply

Marsh Posté le 15-08-2004 à 14:27:30   

Reply

Marsh Posté le 15-08-2004 à 21:06:23    

Je ne peux pas aider, mais ça m'intéresse  :jap:

Reply

Marsh Posté le 16-08-2004 à 13:30:00    

Je sais comment faire mais je n'ai pas le code ici :D
 
Je me rappelle que j'ai simplement repris un bout de code de phpBB. En effet, les forums phpBB permettent aux utilisateur d'uploader leurs avatars mais aussi de les télécharger depuis une URL. Dans ce cas, le serveur télécharge une image et la stoche en local (si j'ai bien compris, c'est ce que je cherche à faire).
 
J'ai donc crée une petite fonction du genre

Code :
  1. function recupere_image(url_de_l_image, chemin_de_sauvegarde,nom_de_fichier)


pour simplifier l'utilisation du code.
 
Donc, explore le code de phpBB (c'est libre) ou attends dans la soirée, je mettrai le code de ma fonction.


Message édité par latruffe le 16-08-2004 à 13:30:53
Reply

Marsh Posté le 18-08-2004 à 15:00:04    

OK merci.
 
En fait, j'ai rechercher sur la doc de php.net des infos supplementaires sur "imagecreatefromjpeg", et dans les commentaires des membres j'ai trouve des petits bouts de code qui fonctionne.
Du coup, avec  
 

Code :
  1. $si = fopen($imagePathURL, "r" );  // open URL  
  2.  
  3.    $serverImg = fread($si, 1000000);  // read contents  
  4.      
  5. fclose($si);  // close file  
  6.  
  7. /* open file to save to (w+ creates if file does not exist || b opens binary safe [Win32])
  8. Seemed to work fine with out the 'b' on Windows NT but just to be safe. */
  9. $si = fopen($saveImgTo, "w+b" );
  10.  
  11.    fwrite($si, $serverImg);  // write contents to file  
  12.  
  13. fclose($si);  // close file


 
ça fonctionne très bien. Je m'excuse donc d'avoir que fopen() ne fonctionne pas sur des images distantes, c faux!  
 
En fait, c imacreatefromjpeg qui ne la supporte pas!!!
 

Citation :

Avertissement
La version Windows de PHP ne supporte pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.  


 
En tout cas merci de votre aide, je peux continuer mon petit script qui deviendra grand!
 
@ bientot
lio09


Message édité par lio09 le 18-08-2004 à 15:00:51
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed