// Estas leyendo...

C \\ C++

Subir / Descargar archivos por FTP C++

Código fuente para Subir o Bajar ( upload / download ) archivos por FTP usando la librería wininet.
El código es muy fácil de entender por lo que no puse comentarios esta ves.

#include <cstdlib>
#include <stdio.h>
#include <wininet.h>
using namespace std;
/*
/* Ejemplo Subir / Descargar archivos via FTP C++
/* By Octalh [octalh@gmail.com]
/* www.aztekmindz.org
*/

int SubirFTP(char *servidor, char *usuario, char *password,
int puerto, char *ALocal, char *ARemoto){
    HINTERNET Peticion;
    Peticion =InternetOpen("Internet Explorer",0,NULL,NULL,0);
    if(Peticion==NULL){
         return 1;
    }else {
       HINTERNET Conectar;
       Conectar = InternetConnect(Peticion,servidor,puerto,
       usuario,password,INTERNET_SERVICE_FTP,0,0);
       if(Conectar==NULL){
            InternetCloseHandle(Conectar);
            return 1;
       }else{
          if(FtpPutFile(Conectar,ALocal,ARemoto,FTP_TRANSFER_TYPE_BINARY,0)==FALSE){
             return 1;
          }

          return 0;
          InternetCloseHandle(Peticion);
          InternetCloseHandle(Conectar);

       }

    }

}

int BajarFTP(){
}

int main(int argc, char *argv[])
{
    if (SubirFTP("Servidorftp.com", "usuario","password",21,"local.txt","remoto.txt")==0){
        printf("\n Archivo Subido Con Exito. \n\n");
        }else{
        printf("\n Error al Subir el Archivo. \n\n");
        }
    system("PAUSE");
    return EXIT_SUCCESS;
}

Para hacer la funcion que Descarga un archivo del servidor FTP simplemente cambiamos la funcion “FtpPutFile” por la funcion FtpGetFile

if(FtpGetFile(Conectar,ARemoto,ALocal,FTP_TRANSFER_TYPE_BINARY,0)==FALSE){
             return 1;
          }

Ya solo quedaría editar la función principal pero eso lo haces muy rápido y no creo que halla necesidad de explicarlo ;)

Comentarios

4 comments para “Subir / Descargar archivos por FTP C++”

  1. tengo un problema al subir el archivo
    existente mm me arroja error
    solo en 1 computador de 5 pude acerlo
    y no se que tenia habilitado
    quisiera saber si tengo que habilitar algo en especial
    salu2

    Posted by felipe | Julio 30, 2008, 2:32
  2. puede que sea el FW de windows el que bloquee la conexion.

    salu2

    Posted by octalh | Julio 30, 2008, 4:06
  3. tengo una duda como podria comprobar que mi contraseña es valida para ese programa es decir
    quiero colocar mi usuario y que se mi contraseña q le di como orden me diga si es valida con el mismo archivo en cpp

    Posted by felipe | Agosto 1, 2008, 4:39
  4. a la funcion FtpGetFile le faltan argumentos y ese codigo no sirve para subir imágenes, creo que para subir archivos de texto se usa FTP_TRANSFER_TYPE_ASCII y para subir imágenes se usa el BINARY pero no se porque no me deja subir imágenes.

    Posted by HateBreeder | Agosto 15, 2008, 16:59

Deja un comentario