Buenas .. pues estoy haciendo pruebas con la mod_curl y estoy consiguendo que funcione .. aunque copiando el codigo de joseba de ejemplo y cambiando lo que me parece xDD pero funciona .. y me baja los archivos. La cosa es que el contenido del archivo que descarga lo guarda en la variable OUTPUT, lo hace bien, lo puestro en un SAY y no hay problema ... se ve el texto perfectamente.
El problema es cuando quiero guardar ese texto en un archivo. Utilizo fwirte y tal (abajo esta el codigo del proceso que uso) pero la cosa esque me inserta un caracter en el archivo al comienzo que se carga el fichero (como muestra la imagen que adjunto xD ¿alguien sabe porque? y como arreglarlo? xD
El proceso lo he modificado ligeramente para que coja una pagina web, en vez del archivo que quiero ( q es un xml), y me hace lo mismo .. me mete un caracter/byte inicial que me corrompe el formato del archivo.
process BI_DownloadActualVersionFile()
private
int curl=0, status=0, i=0;
string output;
handle;
end
begin
curl = curl_init();
if(curl == -1) // Error en inciar la libreria Curl
say("Error");
return "-1";
end
curl_setopt(curl, CURLOPT_NOPROGRESS, 1);
curl_setopt(curl, CURLOPT_WRITEDATA, &output);
//curl_setopt(curl, CURLOPT_URL, actualVersionFile.remoteFile);
curl_setopt(curl, CURLOPT_URL, "http://mznstudio.herokuapp.com");
curl_perform(curl, &status);
while(status != 0)
frame;
end
say(output);
//handle = fopen(actualVersionFile.localFile, O_WRITE);
handle = fopen("index.html", O_WRITE);
fwrite(handle, output);
fclose(handle);
curl_cleanup(curl);
return actualVersionFile.localFile;
end
Si en el ejemplo de la siguiente página haces tostring=0 el contenido se decarga a un fichero en lugar de a una cadena:
http://bennugd-mobile.blogspot.com.es/2011/12/modcurl-examples-i.html
pero en este ejemplo tostring no es una variable de curl, sino una q has definido tu para hacer la diferencia en el IF no? xD porque en la funcion curl_setopt(curl, CURLOPT_WRITEDATA , &output) ... en vez de output tienes el nombre del fichero xD vamos q si pongo un fichero me lo guarda directamente ahí y si pongo una variable me lo guarda en la variable no?xD
Otra cosa Joseba ... la función curl_cleanup() lo q hace es cerrar la conexión que se crea con curl_init() no?
Quote from: KeoH on November 03, 2012, 08:58:26 PM
pero en este ejemplo tostring no es una variable de curl, sino una q has definido tu para hacer la diferencia en el IF no? xD porque en la funcion curl_setopt(curl, CURLOPT_WRITEDATA , &output) ... en vez de output tienes el nombre del fichero xD vamos q si pongo un fichero me lo guarda directamente ahí y si pongo una variable me lo guarda en la variable no?xD
Eso es, sí.
Quote from: KeoH on November 03, 2012, 09:43:12 PM
Otra cosa Joseba ... la función curl_cleanup() lo q hace es cerrar la conexión que se crea con curl_init() no?
Sip.