Jump to content

Comment charger une image distante dans un module


Recommended Posts

Bonjour à tous

Je suis en train de programmer un petit module et je voudrais savoir s'il est possible, connaissant l'URL d'une image distante, de la faire télécharger par Prestashop pour l'associer à un produit. J'ai essayé par le webservice mais je n'y arrive pas (en suivant la doc, point 9). Pas d'erreur mais il ne se passe rien.

Peut-être y-a-t il une commande toute simple de Prestashop pour le faire ?

Merci de votre aide.

Éric

Link to comment
Share on other sites

Inspires toi peut être de ce bout de code:

$si = fopen($imagePathURL, "r" );  // open URL 

  $serverImg = fread($si, 1000000);  // read contents 

fclose($si);  // close file 

/* open file to save to (w+ creates if file does not exist || b opens binary safe [Win32])
Seemed to work fine with out the 'b' on Windows NT but just to be safe. */
$si = fopen($saveImgTo, "w+b" );

  fwrite($si, $serverImg);  // write contents to file 

fclose($si);

 

Sinon question à 100 balles: pourquoi ne pas afficher le produit directement avec l'URL en question ?

Link to comment
Share on other sites

"Sinon question à 100 balles: pourquoi ne pas afficher le produit directement avec l'URL en question ? "

Parce que c'est du vol de bande passante... C'est à dire que chaque fois que l'image est visualisée sur votre site, c'est le site distant qui fournit la bande passante et qui paye donc pour les octets transmis.

Ça peut aller avec certains sites qui autorisent explicitement cet usage, mais d'autres n'apprécient pas, et certains bloquent carrément ce genre d'accès. Sans parler que si le site distant est en maintenance ou disparait, plus d'image !

Link to comment
Share on other sites

Parce que reprendre l'image du site distant en la copiant sur son site et en l'affichant ensuite, c'est mieux ?

En outre, rien ne dit que l'url en question n'est pas sur un serveur lui appartenant par exemple. Parce que je suppose que si il reprend les photos, c'est qu'il possède les droits dessus non ?

 

Et si depuis mon site, je fais ça:

<img src="http://www.prestashop.com/forums/uploads/profile/photo-10297.jpg" />

C'est du vol de bande passante que d'afficher votre avatar ?

Edited by franckm1000 (see edit history)
Link to comment
Share on other sites

Ouhla... Je ne veux pas provoquer de disputes ! Alors je précise pour éviter le troll :

C'est pour un module de dropshipping, donc les photos sont sur le site du fournisseur et le client a le droit de les télécharger... C'est pour automatiser quelques tâches.

J'ai creusé et je me suis rappelé de l'import CSV donc j'ai repris une partie de ce code, en incluant le fichier images.inc.php et cela fonctionne. Je colle le code utilisé (qui est du code prestashop) asap.

En tout cas merci pour la réactivité.

Edited by ericdel (see edit history)
Link to comment
Share on other sites

Ma réponse était générique. Comme je l'ai dit, certains sites autorisent ce genre de hotlinking.

"C'est du vol de bande passante que d'afficher votre avatar ?"

J'en ai peur, oui.

Pour le cas particulier des avatars, Gravatar est un exemple typique de site permettant explicitement de linker vers leur serveur, qui est dimensionné pour ça.

 

À noter que j'ai utiliser le terme de "vol" parce que c'est le terme couramment utilisé. Beaucoup de gens font ça de façon innocente, sans savoir que c'est une pratique déconseillée. Je ne cherchais pas à jeter l'opprobe sur quelqu'un, je visais juste à informer.

J'ai vu certains blogs inaccessibles parce que quelqu'un a montré directement une image depuis le site dans un message très populaire (beaucoup de vues)... :) Beaucoup de services de blogs limitent la quantité quotidienne d'octets servis.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...