Jugando con Curl y mod_file

Started by KeoH, November 03, 2012, 01:35:24 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

KeoH

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




josebita

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

KeoH

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

KeoH

Otra cosa Joseba ... la función curl_cleanup() lo q hace es cerrar la conexión que se crea con curl_init() no?

josebita

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.