Foros del Web » Programación para mayores de 30 ;) » .NET »

subir un archivo .rar por FTP c#

Estas en el tema de subir un archivo .rar por FTP c# en el foro de .NET en Foros del Web. Estimados Quisiera saber si alguien me puede ayudar, estoy haciendo una aplicacion de escritorio en c#, con la cual se enviara un archivo .rar a ...
  #1 (permalink)  
Antiguo 17/06/2015, 15:13
 
Fecha de Ingreso: junio-2015
Mensajes: 2
Antigüedad: 8 años, 10 meses
Puntos: 0
subir un archivo .rar por FTP c#

Estimados

Quisiera saber si alguien me puede ayudar, estoy haciendo una aplicacion de escritorio en c#, con la cual se enviara un archivo .rar a un servidor ftp.

el codigo que estoy utilizando es el siguiente:

WebClient client = new WebClient();
client.Credentials = new NetworkCredential(userName, password);
client.UploadFile("ftp://190.186.79.240/","tbpos_301.rar");

pero al ejecutar el codigo me sale este mensaje:

El URI solicitado no es válido para este comando FTP.

alguien me puede ayudar

de antemano mil gracias!
  #2 (permalink)  
Antiguo 24/06/2015, 13:54
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 19 años
Puntos: 16
Respuesta: subir un archivo .rar por FTP c#

Buenas compañero,

Encontraste ya la solución a tu problema¿?
Si es así, posteala para que les sirva de ayuda a otros, sino, comenta y te intento echar una mano... :)


Un saludo y gracias compañero!!!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)
  #3 (permalink)  
Antiguo 30/06/2015, 12:48
 
Fecha de Ingreso: junio-2015
Mensajes: 2
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: subir un archivo .rar por FTP c#

Buenas, no he encontrado solución, por el momento estoy llamando a una aplicación que hice en bash.

Espero me puedas ayudar, ya me gustaría tenerlo todo en C#.
  #4 (permalink)  
Antiguo 22/10/2015, 15:54
Avatar de laviky65  
Fecha de Ingreso: diciembre-2014
Mensajes: 19
Antigüedad: 9 años, 5 meses
Puntos: 0
Exclamación Respuesta: subir un archivo .rar por FTP c#

Hola chic@s... Les muestro algo que me funcionó...

Esto solo funciona en Internet Explorer, los otros navegadores no tienen esa posibilidad, por eso puede ser que no les funcione. Me comentaron que es un error que tiene Explorer y por eso lo permite (leer la ruta donde está el archivo), los otros navegadores lo que hacen es darle temporalmente una ruta al archivo (la cual no es la real) y a la hora de copiar el archivo al servidor obviamente no lo van a encontrar.

Este ejemplo es para un servicio con credenciales (una cuenta FTP que requiera Usuario y Contraseña)

Código C#:
Ver original
  1. //Tomamos el nombre del archivo
  2. string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
  3.  
  4. //Tomamos la ruta completa donde se encuentra el archivo
  5. string path = Path.GetFullPath(FileUpload1.PostedFile.FileName);
  6.  
  7. //iniciamos la petición ftp con el servidor y creamos el archivo que deseamos subir
  8. FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ServerFtp + fileName);
  9. request.Proxy = null;
  10. request.UsePassive = true;
  11. request.UseBinary = true;
  12. request.KeepAlive = true;
  13. request.Method = WebRequestMethods.Ftp.UploadFile; //esto indica que tipo de petición es (subir o bajar archivos)
  14.  
  15. //Acá van el usuario y contraseña para la petición FTP
  16. request.Credentials = new NetworkCredential(Usuario, Contrasena);
  17.  
  18. //Copiamos el contenido del archivo del equipo al que creamos en el server
  19. StreamReader sourceStream = new StreamReader(path);
  20. byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
  21. sourceStream.Close();
  22. request.ContentLength = fileContents.Length;
  23. //Generamos la peticion de Stream para poder transferir los datos
  24. Stream requestStream = request.GetRequestStream();
  25. requestStream.Write(fileContents, 0, fileContents.Length);
  26. requestStream.Close();
  27. FtpWebResponse response = (FtpWebResponse)request.GetResponse();
  28.  
  29. //Cerramos el hilo por el cual se subió el archivo
  30. response.Close();

Espero esto les ayude

Etiquetas: c#
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:44.