Autor
|
Tema: Subir txt por ftp (Leído 14,043 veces)
|
eldiabloxico
Desconectado
Mensajes: 58
Aprendiendo algo nuevo cada dia
|
me sale error, exactamente "Unable to contect to remote host"
|
|
|
En línea
|
|
|
|
vivachapas
Desconectado
Mensajes: 612
|
yo tb intente con el source de recursosvisualbasic.. y tb me sale error :S (lo habia posteado mas abajo) trate de solucionarlo.. pero nunca pude y busque banda de ejemplos pero no lo pude solucionar.. el error me lo tiraba en la linea del Call .Execute pero bue.. a ver si alguno lo puede solucionar XD
|
|
|
En línea
|
|
|
|
seba123neo
|
yo tambien pruebo y no funciona con el inet...y tambien probe hacerlo con las api's del FTP hay un ejemplo en la api guide..es como el modulo de cobein...pero tambien no anda...este no tira error...simplemente no lo sube...
|
|
|
En línea
|
|
|
|
Spider-Net
Desconectado
Mensajes: 1.165
Un gran poder conlleva una gran responsabilidad
|
Yo una vez hice un programa que subía por ftp un archivo a internet. Como tampoco lo conseguí de ninguna de las maneras lo que hice fue usar el cliente ftp de windows (que viene incorporado de serie ) para subir mi archivo. Es una pequeña chapuza pero bueno.. al menos funciona xD Sub SubirArchivo() Open "C:\datos.dat" For Output As #1 Print #1, "nombre de usuario" Print #1, "contraseña" Print #1, "put tuarchivo.txt" Close #1 DoEvents Shell "cmd /c ftp -v -i -s:C:\datos.dat ftp.tuhost.com", vbHide DoEvents Kill "C:\datos.dat" End Sub
Este pequeño código genera un archivo que contiene los datos del server y también la instrucción put para poner tu archivo en tu host. Luego investigué en internet como podía usar todos esos datos para mandar el archivo al host con una sola línea y como véis en el ejemplo lo conseguí. Se sube el fichero sin problemas a internet y luego se borra el fichero que contiene los datos de login. Supongo que al menos hace el apaño xD Saludos!
|
|
|
En línea
|
|
|
|
ssccaann43 ©
Desconectado
Mensajes: 792
¬¬
|
Aqui tienes un source de un cliente FTP. Te ayudara un poco, no soy el creador. Pero modifique algunas cositas. Esta totalmente funcional, espero te ayude. Cliente FTP
|
|
|
En línea
|
- Miguel Núñez Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio... "I like ^TiFa^"
|
|
|
seba123neo
|
digamos que no necesitamos un cliente FTP..solo que se apriete un boton y se suba el archivo nomas...ya tenemos todas las formas para subirlo pero no anda ninguna..recien probe una forma con el winsock y lo sube al TOQUE si alguien le interesa...
saludos.
|
|
|
En línea
|
|
|
|
ssccaann43 ©
Desconectado
Mensajes: 792
¬¬
|
Si seba, pero es mejor q lo tenga todo asi puede subir y bajar archivos.
|
|
|
En línea
|
- Miguel Núñez Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio... "I like ^TiFa^"
|
|
|
vivachapas
Desconectado
Mensajes: 612
|
seba me podes pasar la forma con el winsock x favor... a mi me interesa... gracias
|
|
|
En línea
|
|
|
|
seba123neo
|
aca lo pongo... Option Explicit Private Type Datos Respuesta As String Comando As String End Type Dim Comandos(5) As Datos Dim Estado As Integer Dim Sitio As String, Usuario As String, Password As String, ArchivoRemoto As String, ArchivoLocal As String Dim TamañoBuffer As Long Dim EstaCerrado As Boolean Private Sub Command1_Click() Sitio = "ftp.tuservidor.com.ar" Usuario = "tuusuario" Password = "tucontraseña" ArchivoLocal = "c:\a.txt" ArchivoRemoto = "/carpetadetuservidor/a.txt" Comandos(0).Respuesta = "220" Comandos(0).Comando = "USER " + Usuario Comandos(1).Respuesta = "331" Comandos(1).Comando = "PASS " + Password Comandos(2).Respuesta = "230" Comandos(2).Comando = "TYPE I" Comandos(3).Respuesta = "200" Comandos(3).Comando = "PORT" Comandos(4).Respuesta = "200" Comandos(4).Comando = "STOR " + ArchivoRemoto Comandos(5).Respuesta = "" Comandos(5).Comando = "" TamañoBuffer = 2920 Dim Nr1 As Integer Dim Nr2 As Integer Dim IPLocal As String IPLocal = Winsock1.LocalIP Do Until InStr(IPLocal, ".") = 0 IPLocal = Left(IPLocal, InStr(IPLocal, ".") - 1) + "," + Right(IPLocal, Len(IPLocal) - InStr(IPLocal, ".")) Loop Randomize Timer Nr1 = Int(Rnd * 12) + 5 Nr2 = Int(Rnd * 254) + 1 Comandos(3).Comando = "PORT " + IPLocal + "," + Trim(Str(Nr1)) + "," + Trim(Str(Nr2)) Winsock2.Close Do Until Winsock2.State = 0 DoEvents Loop Winsock2.LocalPort = (Nr1 * 256) + Nr2 Winsock2.Listen Winsock1.Close Do Until Winsock1.State = 0 DoEvents Loop Winsock1.RemoteHost = Sitio Winsock1.RemotePort = 21 Winsock1.Connect Estado = 0 Do Until Winsock1.State = 7 Or Winsock1.State = 9 DoEvents Loop Select Case Winsock1.State Case 9 MsgBox "No se pudo Conectar al Servidor " + Sitio + ".", vbOKOnly + vbInformation Case 7 Open ArchivoLocal For Binary As #1 End Select End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim tmpS As String Winsock1.GetData tmpS, , bytesTotal Debug.Print tmpS; Select Case Left(tmpS, 3) Case Comandos(Estado).Respuesta Winsock1.SendData Comandos(Estado).Comando + Chr(13) + Chr(10) Debug.Print Comandos(Estado).Comando Estado = Estado + 1 Case "150" Do Until Winsock2.State = 7 DoEvents Loop Call EnviarDatos Case "226" Winsock1.Close Do Until Winsock1.State = 0 DoEvents Loop MsgBox "Subida de Archivo Completa....", vbOKOnly + vbInformation Case Else MsgBox "No Hay Respuesta del Servidor: " + Left(tmpS, Len(tmpS) - 2), vbOKOnly + vbInformation End Select End Sub Private Sub Winsock2_ConnectionRequest(ByVal requestID As Long) Winsock2.Close Do Until Winsock2.State = 0 DoEvents Loop Winsock2.Accept requestID Do Until Winsock2.State = 7 DoEvents Loop End Sub Sub EnviarDatos() Dim Take As Long Dim Buffer As String If LOF(1) - Seek(1) < TamañoBuffer Then Take = LOF(1) - Seek(1) + 1 Else Take = TamañoBuffer Buffer = Input(Take, 1) Winsock2.SendData Buffer If Take < TamañoBuffer Then Close #1 EstaCerrado = True End If End Sub Private Sub Winsock2_SendComplete() If EstaCerrado = True Then Winsock2.Close Do Until Winsock2.State = 0 DoEvents Loop EstaCerrado = False Else EnviarDatos End If End Sub
necesitas 2 winsock y un boton... saludos.
|
|
|
En línea
|
|
|
|
eldiabloxico
Desconectado
Mensajes: 58
Aprendiendo algo nuevo cada dia
|
Seba, de nuevo gracias por responder, mira e probado eso, e puesto todos los datos y todo, pero el problema es que ejecuto el programa, le doy al boton y ai se queda, no dice si ubo error, ni nada parecido, por lo que no se que podria ser, el firewall le da acceso a todo y los demas programas igual, asi que no se...
|
|
|
En línea
|
|
|
|
|
|