rmoncho Posted April 21, 2017 Share Posted April 21, 2017 Hola a todos, tengo la necesidad de subir imágenes a la tienda virtual por programación. Buscando en la documentación he encontrado el siguiente código. $url = 'http://MiTienda/api/images/products/1'; $image_path = 'MiImagen.jpg'; $key = 'MiClave'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); //curl_setopt($ch, CURLOPT_PUT, true); curl_setopt($ch, CURLOPT_USERPWD, $key.':'); curl_setopt($ch, CURLOPT_POSTFIELDS, array('image' => '@'.$image_path)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: image/jpg')); $result = curl_exec($ch); curl_close($ch); No saca ningun error pero tampoco inserta la imagen deseada al producto tal y como lo indico en la url. ¿Alguien tiene un metodo efectivo de subir imagenes? Gracias. Link to comment Share on other sites More sharing options...
mAchAcA Posted April 21, 2017 Share Posted April 21, 2017 Aquí tienes un ejemplo de un update en php utilizando la api del webservice: https://github.com/PrestaShop/PrestaShop-webservice-lib/blob/master/examples/Update.php Link to comment Share on other sites More sharing options...
rmoncho Posted April 25, 2017 Author Share Posted April 25, 2017 Ese código construye un formulario de edición de clientes, lo que yo busco es hacerlo por programación cosa que he conseguido menos el tema de las imágenes. Necesito añadir/editar las imágenes asociadas a productos, categorías i demás por programación. Link to comment Share on other sites More sharing options...
genweb Posted April 30, 2017 Share Posted April 30, 2017 (edited) Cambia $result = curl_exec($ch); por echo $result = curl_exec($ch); Te imprimirá en pantalla lo que está devolviendo la llamada, con un poco de suerte, el motivo del error. Edited April 30, 2017 by genweb (see edit history) Link to comment Share on other sites More sharing options...
rmoncho Posted May 2, 2017 Author Share Posted May 2, 2017 (edited) Tema solucionado. La imagen se debe enviar como: curl_setopt($ch, CURLOPT_POSTFIELDS, array('image' => new CurlFile($imagePath))); Y tambien hay que omitir la opcion CURLOPT_HTTPHEADER. Edited May 3, 2017 by rmoncho (see edit history) Link to comment Share on other sites More sharing options...
genweb Posted May 2, 2017 Share Posted May 2, 2017 Tema solucionado. La imagen se debe enviar como: curl_setopt($ch, CURLOPT_POSTFIELDS, array('image' => '@'.$image_path)); Y tambien hay que omitir la opcion CURLOPT_HTTPHEADER. Gracias por el feedback! Link to comment Share on other sites More sharing options...
nadie Posted May 2, 2017 Share Posted May 2, 2017 Tema solucionado. La imagen se debe enviar como: curl_setopt($ch, CURLOPT_POSTFIELDS, array('image' => '@'.$image_path)); Y tambien hay que omitir la opcion CURLOPT_HTTPHEADER. No se te olvide añadir la palabra "Solucionado": https://www.prestashop.com/forums/topic/269515-solucionado-%C2%BFcomo-poner-la-palabra-solucionado-en-el-titulo-del-tema/ al titulo del tema, y marcar el botón "Mark Solved" en la solución. Un saludo y gracias por la colaborar con la Comunidad de Prestashop Link to comment Share on other sites More sharing options...
Victor Casajuana Mas Posted May 24, 2018 Share Posted May 24, 2018 On 2/5/2017 at 8:37 PM, nadie said: No se te olvide añadir la palabra "Solucionado": https://www.prestashop.com/forums/topic/269515-solucionado-%C2%BFcomo-poner-la-palabra-solucionado-en-el-titulo-del-tema/ al titulo del tema, y marcar el botón "Mark Solved" en la solución. Un saludo y gracias por la colaborar con la Comunidad de Prestashop Esto funciona, pero si el fichero está ubicado localmente en el ordenador en vez del servidor, no funciona. Alguien sabe como indicarle a la función curlfile que el fichero está en el ordenador? ej: c:\fotos\casa.jpg Gracias!! Link to comment Share on other sites More sharing options...
jgamio Posted May 25, 2018 Share Posted May 25, 2018 @Victor Casajuana Mas Puedes explicar que es lo que quieres hacer, si te refieres a la imagen que se envia usando el service tienes que tenerla donde este el script en ese punto no tienes otra opcion, si te refieres a descargar una imagen es otra historia Ahora si tienes las imagenes en tu ordenador simplemente corre el scrip desde tu maquina Link to comment Share on other sites More sharing options...
Victor Casajuana Mas Posted June 19, 2018 Share Posted June 19, 2018 Gracias jgamio, al final lo he solucionado con ccurl.exe Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now