Jump to content

how upload images via CURL


Recommended Posts

how upload images via CURL?

 

I reday login back office ,but i can not upload image via CURL , help me !!!!

 

$pic_path="@C:\wamp\www\cur\as.jpg";
$pic_data=array("image_product"=>$pic_path);
$ch = curl_init($update_product_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $pic_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_exec($ch);
curl_close($ch);

Link to comment
Share on other sites

  • 7 months later...

It's an old post but still first in search results, so for people who has some problems as I get, here is my php code actually working :

 

<?php
// defines shop path and webservice auth key
define('PS_SHOP_PATH', 'http://www.myprestashop.com');
define('PS_WS_AUTH_KEY', 'XXXXXXXXXX');


$url = PS_SHOP_PATH.'/api/images/products/'.$id_product;

$img='C:\\myprestashop\\photos\\large\\'.$myjpgimg;

//curl parameters expects image to be binary :
$data_img= array('image'=>"@".$img.";type=image/jpeg");

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
//curl_setopt($ch, CURLOPT_PUT, true); //to modify an image
curl_setopt($ch, CURLOPT_USERPWD, PS_WS_AUTH_KEY.':');

curl_setopt($ch, CURLOPT_POSTFIELDS, $data_img);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

//curl exec
if(curl_exec($ch) === false)
{ echo 'Error : '.curl_error($ch).'<br>'; }
else { echo 'Image added'; }
curl_close($ch);		
?>

Edited by Intra (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...
  • 5 months later...
  • 1 year later...

Salut Intra, 

 

j'ai le même code que toi seulement mon chemin pour les images est de ce type : www.monSite.com/images/monImage.jpg

 

Lorsque je donne un chemin simple tel que :"/usr/Desktop/monDossier/mesImages/monImage.jpg" dans la variable $image_path, celui-ci me retourne un résultat satisfaisant.

 

Cependant, lorsque je lui place en paramètre l'url du dossier de mon site, aucune image n'apparaît...

 

Une solution peut-être ?

Link to comment
Share on other sites

lorsque je lui place en paramètre l'url du dossier de mon site, aucune image n'apparaît...

 

Ce code nécessite de passer en paramètre le chemin local pour accéder à l'image, ça ne fonctionnera pas avec une url. 

Soit tu exécute ton script sur ton serveur, avec le chemin local vers les images du serveur.

 

Soit, tu télécharge l'image avec un script du style :

$url_image = 'http://www.monsite.fr/image/'.$img_name.'.jpg';

if(!file_exists('/local_images/'.$img_name.'.jpg')) { //verif si le fichier n'est pas déjà en local
	$ch = curl_init($url_image);
	$fp = fopen('./local_images/'.$img_name.'.jpg', 'w+'); //on le crée
	curl_setopt($ch, CURLOPT_FILE, $fp);
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_exec($ch);
	curl_close($ch);
	fclose($fp);
	if(filesize('./local_images/'.$reference.'.jpg') == 0) { //on peut vérifier sa taille
		unlink('./local_images/'.$img_name.'.jpg'); //le supprimer de cette façon
	}
} 

A adapter, voilà bon courage

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

×
×
  • Create New...