Posteado por: eurecadigital | marzo 17, 2009

Ftp con c# (Upload) Subir un Fichero

Para ello usaremos la clase FtpWebRequest.

Ejemplo:

 

private int Upload(string server, string user, string pass, string origen, string rutadestino, string nombredestino)

{

try

{

FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(server + rutadestino + “/” + nombredestino);

request.Method = WebRequestMethods.Ftp.UploadFile;

request.Credentials = new NetworkCredential(user, pass);

request.UsePassive = true;

request.UseBinary = true;

request.KeepAlive = true;

FileStream stream = File.OpenRead(origen);

byte[] buffer = new byte[stream.Length];

stream.Read(buffer, 0, buffer.Length);

stream.Close();

Stream reqStream = request.GetRequestStream();

reqStream.Write(buffer, 0, buffer.Length);

reqStream.Flush();

reqStream.Close();

return 1;

}

catch(Exception ex)

{

return 0;

}

}

el nombre del server tiene que empezar por “ftp://”

Ejemplo : “ftp://ftp.wanadoo.es” o “ftp://88.214.123.195”


Responses

  1. muy buen codigo y sencillo de usar (Y)

  2. podrias poner un ejemplo de los valores que debe recibir aqui “FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(server + rutadestino + “/” + nombredestino);” ???
    estoy teniendo un error 550 archivo no encontrado no acceso
    gracias

  3. Suponiendo que quieres subir un fichero file.txt

    FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(“ftp://88.214.123.195/path/file.txt”);
    Donde 88.214.123.195 es la ip del servidor ftp, path es la ruta deonde va el fichero
    file.txt del ejemplo.

  4. Lo pueden ver también aqui con comentarios

    http://www.vtortola.net/post/Enviar-un-archivo-por-FTP.aspx

    Saludos

  5. Muy bien gracias por la respuesta. Tuve un problema con el proxy si se les presenta
    deben agregar la siguiente linea

    stream.Close();
    request.Proxy = null;
    Stream reqStream = request.GetRequestStream();

  6. tengo el mismo problema de Ax, se puede solucionar??

  7. Si el ftp tiene configurado un puerto como debe ser la sintaxis? Lo tengo de la siguiente forma y presenta error:

    FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(“ftp://88.214.123.195:991/path/file.txt”);

    Saludos


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: