Buenas, estoy intentando descargar un csv a traves de una URL, pero me crea el fichero vacio, he comprobado los parámetros del comando y está todo bien, la senda y la url. Como me facilitan un token de acceso al archivo, he puesto el token mal a posta y si me genera un archivo en la ruta, con el error que da al tener el token incorrecto, con lo que el comando está funcionando, también he probado a poner la url en el navegador y me lo descarga con contenido, pero al utilizar el comando se genera el archivo vacio. ¿Por que puede ser? Lo tengo para que se descargue mediante una acción de botón.
Hola fran_garcia.
El comando Get Fichero URL quizás ya no funcione con peticiones a dominios distintos al origen desde el que se ejecuta.
Tendrás que consultar a Soporte para confirmar esa limitación.
Puedes usar otras formas de descargar archivos usando el API y la clase XmlHttpRequest.
Saludos
Paco Satué
Aunque no encuentre el archivo en la ruta especificada GetFicheroUrl te va a crear el fichero vacío, es un error o bug, comprueba la ruta de descarga.
Hola pacosatu.
Yo he pensando que tambien podían ser los cruces de dominios, pero lo he solucionado de la siguiente manera, me he salido un poco de Velneo pero he hecho lo siguiente, para esto he utilizado php y lo he colocado en un servidor externo que tengo, para evitar lo que comentas, el cruce de dominios.
<?php
ob_end_clean();
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename=TARIFAS2.CSV');
readfile("http://api.infortisa.com/api/TarifaV2//GetFile?user=MI_API_KEY");
?>
y luego en velneo he llamado mediante el comando Get Fichero URL a ese archivo .php.
Get fichero de URL ( "https://gestionobras.gesjob.com/csv.php", sysCacheClientPath + "/TARIFAS2.CSV", )
y ya sale perfecto, con los datos y todo, de todas maneras creo que no es por origen , ni por un bug o error como dice el compañero bitcodesoft, creo que se debe a configuracón de las cabeceras (En velneo no se muy bien cuales son, por eso lo hago en php ), pero sería poner algo parecido a como lo configuro en php, cosa que en velneo no sé si existe.
Hola bitcodesoft, yo también pensaba que era por error mio o un bug, pero poniendo la ruta en el navegador y veía que me lo descargaba bien, ya dudaba, al final tiré de otro lenguaje y conecté con eso.
Muchas gracias por postear y por la ayuda.
Al final la solución se la comento arriba al compañero.
Hola fran_garcia.
Por supuesto que el problema son las cabeceras, ya que siendo Get Fichero URL una petición GET, es lo único que podemos configurar.
Por esa razón te decía lo de usar la clase VXmlHttpRequest del API, y dejar el comando Get Fichero URL como obsoleto y de aplicación específica para descargar en dominios propios de empresa.
Las cuestiones ahora mismo referentes a las políticas de seguridad en la Web darían para un Master completo y sería ridículo suponer que el comando Get Fichero URL sirviera para descargar cualquier cosa de cualquier sitio.
Como siempre ocurre en estos casos sería conveniente que Velneo documentase mucho más en profundidad estos comandos para evitar especulaciones que nos hacen perder tiempo muy valioso.
A modo de ejemplo, las dos URL’s siguientes funcionan sin problemas con Get Fichero URL:
https://www.w3schools.com/xml/books.xml
https://api.json-generator.com/templates/J4ee3CMJUDY9/data?access_token=mgykqpjqbpu9rbotenrd6f5upbjqvhp4fob8hydm
Saludos
Paco Satué