vtortola.Net

Abril 17, 2007

Enviar un archivo por FTP

Archivado en: .NET, .Net Networking, C#, Input Output — vtortola @ 7:36 am

Este artículo ha sido migrado a mi nuevo blog:

 Enviar un archivo por FTP
Enviar un Stream por FTP
Descargando un fichero por FTP

8 comentarios »

  1. [...] un archivo como eMail 17 04 2007 Siguiendo la línea del artículo anterior donde explicaba como subir un archivo vía FTP, voy a mostrar ahora como enviar un archivo vía email con las clases contenidas en [...]

    Pingback por Enviar un archivo como eMail « WhatTheFuckException was thrown — Abril 17, 2007 @ 8:02 am

  2. Hola, gracias por tu ejemplo.

    Al ejecutarlo me arroja la siguiente Excepcion:

    No se admite el comando FTP solicitado cuando se utiliza un proxy HTTP.

    Quizas a ti no te arroje esto… o hay que hacer algo mas?

    salu2 y gracias

    Comment por Rodrigo BDHiv — Abril 25, 2007 @ 4:33 pm

  3. Nop, a mi no me salta ninguna excepción pero también es cierto que lo hago en local.

    Has probado a hacer ‘ftp.Proxy = null;’ ?

    http://www.cookcomputing.com/blog/archives/000554.html

    Por lo que parece solo ciertos comandos funcionan a través de un proxy.

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=255685&SiteID=1

    Estas tras uno?

    Un saludo.

    Comment por vtortola — Abril 25, 2007 @ 4:49 pm

  4. me ha resultado..!! muchas gracias..
    envio el codigo completo para quienes lo quieran usar

    private void UploadFTP(string PathFichero,string NombreFichero)
    {
    try
    {
    MemoryStream ms = new MemoryStream();
    FileStream fsArchivo = new FileStream(PathFichero, FileMode.Open, FileAccess.Read, FileShare.Read);

    string login = “usuario”;
    string password = “pass”;
    string url = “ftp://ftp.myhost.com/Software/” + NombreFichero;

    FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(url);
    http://ftp.Credentials = new NetworkCredential(login, password);
    http://ftp.KeepAlive = false;
    http://ftp.Method = WebRequestMethods.Ftp.UploadFile;
    http://ftp.UseBinary = true;
    http://ftp.ContentLength = fsArchivo.Length;
    ms.Position = 0;
    int buffLength = 2048;
    byte[] buff = new byte[buffLength];
    int contentLen;
    http://ftp.Proxy = null;
    using (Stream strm = http://ftp.GetRequestStream())
    {
    // Leer del buffer 2kb cada vez
    contentLen = fsArchivo.Read(buff, 0, buffLength);
    // mientras haya datos en el buffer ….
    while (contentLen != 0)
    {
    //escribir en el stream de conexión
    //el contenido del stream del fichero
    strm.Write(buff, 0, contentLen);
    contentLen = ms.Read(buff, 0, buffLength);
    }
    }
    }
    catch (Exception e)
    {

    }
    }

    Comment por Rodrigo BDHiv — Abril 25, 2007 @ 8:35 pm

  5. De nada ;)

    Añado la opción de proxy al código del ejemplo.

    Un saludo.

    Comment por vtortola — Abril 25, 2007 @ 9:00 pm

  6. Muy buen artículo, en verdad me ha ayudado…. me voy a tomar la libertad de referenciarlo desde mi blog y en un par de días posteare la solución al problema que tenía pero con la solución completa que incluirá el código que han expuesto aquí….

    Saludos.

    Comment por h@nz ...el Geek — Mayo 22, 2007 @ 9:02 pm

  7. Me alegro de que sea útil, pues ese era el fin con el que lo escribí :)

    Un saludo.

    Comment por vtortola — Mayo 24, 2007 @ 10:03 pm

  8. El primer ejemplo no me crea un archivo en el ftp, pero sin las lineas de texto!!! cual puede ser el error?

    Comment por Oswaldo — Agosto 8, 2007 @ 1:17 am


Canal RSS de los comentarios de la entrada. URI para TrackBack.

Deja un comentario

Tienes que iniciar sesión para escribir un comentario.

Blog de WordPress.com.