Hola a todos,
A ver si alguien me puede ayudar porque ando perdido. Tengo que subir unos ficheros a un servidor FTP y no consigo que funcione, a lo más que llega es a crear el archivo en el servidor, pero se queda con 0 bytes de longitud. La llamada a oFile:OpenWrite() se demora más de un minuto y se queda con permisos 644 en el servidor .
Uso Harbour (no XHarbour), no se si esto tendrá algo que ver.
Saludos
Estoy intentandolo con el siguiente código que vi por aquí:
//----------------------------------------------------------------------------//
Function FTPSendFiles( cFTPSite, aSource, aTarget, cUserFtp, cPassFtp )
Local lEnd := .f.
Local nBufSize := 2000
Local oInternet, oFTP
oInternet := TInternet():New()
if Empty( oInternet:hSession )
MsgAlert( "Sin Conexión a Internet!" )
else
oFTP := TFTP():New( cFTPSite, oInternet, Alltrim(cUserFtp),Alltrim(cPassFtp))
if Empty( oFTP:hFTP )
MsgStop( "Imposible Conectarse al Sito FTP" )
else
SendFiles( aSource, aTarget, nBufSize, lEnd, oFTP )
endif
endif
oInternet:End()
return nil
//----------------------------------------------------------------------------//
Static Function SendFiles( aSource, aTarget, nBufSize, lEnd, oFTP )
Local n
Local hSource
Local cBuffer := Space( nBufSize )
Local nBytes, nFile := 0, nTotal := 0
Local nTotSize := 0
Local oFile
for n = 1 to Len( aSource )
if ! File( aSource[ n ] )
MsgStop( "Archivo No Encontrado: " + aSource[ n ] )
exit
endif
hSource = FOpen( aSource[ n ] )
nTotSize += FSeek( hSource, 0, 2 )
FClose( hSource )
next n
for n = 1 to Len( aSource )
hSource = FOpen( aSource[ n ] )
sysrefresh()
oFile = TFtpFile():New( aTarget[ n ], oFTP )
oFile:OpenWrite() // Esto tarda mas de un minuto ---------------------------------------------
FSeek( hSource, 0, 0 )
nFile := 0
do while ( nBytes := FRead( hSource, @cBuffer, nBufSize ) ) > 0 .and. ! lEnd
oFile:Write( SubStr( cBuffer, 1, nBytes ) )
sysrefresh()
enddo
FClose( hSource )
oFile:End()
sysrefresh()
if lEnd
exit
endif
next n
Return nil
Subir ficheros por FTP
- Sebastián Almirón
- Posts: 125
- Joined: Mon Dec 12, 2005 9:56 am
- Location: Moralzarzal - Spain
- cuatecatl82
- Posts: 614
- Joined: Wed Mar 14, 2007 6:49 pm
- Location: San Cristobal de las Casas, Chiapas México
- Contact:
Re: Subir ficheros por FTP
Buen dia Sebastian:
Checa este link, aquí hay un programa para subir y bajar archivos FTP con código fuente, e mi me sirvio y es 100% funcional:
http://javierlloris.blogspot.com.es/201 ... tp_25.html
Saludos..
Checa este link, aquí hay un programa para subir y bajar archivos FTP con código fuente, e mi me sirvio y es 100% funcional:
http://javierlloris.blogspot.com.es/201 ... tp_25.html
Saludos..
Soluciones y Diseño de Software
Damos Soluciones...
I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos
http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Damos Soluciones...
I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos
http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
- omarelunico
- Posts: 33
- Joined: Sun May 14, 2006 7:31 am
- Location: Lima - Perú
Re: Subir ficheros por FTP
Si tienes el control del servidor linux, otra manera podría ser por SSH
pscp es un ejecutable que realiza una conexión ssh con un servidor y se puede transferir archivos
pscp lo puedes descargar de http://www.chiark.greenend.org.uk/~sgta ... nload.html y copiarlo a c:\windows\system32
la orden a incluir en el fivewin es la siguiente. como ejemplo mi archivo se llama archivo.zip , cusuario y cclave es un usuario cualquier del linux con acceso a SSH
ShellExecute(,"open","c:\windows\system32\pscp.exe"," -l "+cUsuario+" -pw "+cClave+"d:\carpeta\archivo.zip "+cuser+"@"+DireccionIPServidorLinux+":/home/usuario/",,)
pscp es un ejecutable que realiza una conexión ssh con un servidor y se puede transferir archivos
pscp lo puedes descargar de http://www.chiark.greenend.org.uk/~sgta ... nload.html y copiarlo a c:\windows\system32
la orden a incluir en el fivewin es la siguiente. como ejemplo mi archivo se llama archivo.zip , cusuario y cclave es un usuario cualquier del linux con acceso a SSH
ShellExecute(,"open","c:\windows\system32\pscp.exe"," -l "+cUsuario+" -pw "+cClave+"d:\carpeta\archivo.zip "+cuser+"@"+DireccionIPServidorLinux+":/home/usuario/",,)
- Sebastián Almirón
- Posts: 125
- Joined: Mon Dec 12, 2005 9:56 am
- Location: Moralzarzal - Spain
Re: Subir ficheros por FTP (SOLUCIONADO)
Gracias por la ayuda, finalmente lo he implementado utilizando el enlace de cuatecatl82, aprovechando la clase ServicesFTP de Jose Javier Lloris y funciona bien.
Saludos
Saludos
- cuatecatl82
- Posts: 614
- Joined: Wed Mar 14, 2007 6:49 pm
- Location: San Cristobal de las Casas, Chiapas México
- Contact:
Re: Subir ficheros por FTP
Si es bastante buena, fucional y practica, checa este enlace, talvéz pueda servirte para hacer más funcional tu proyecto:
http://forums.fivetechsupport.com/viewt ... =6&t=27510
Saludos..
http://forums.fivetechsupport.com/viewt ... =6&t=27510
Saludos..
Soluciones y Diseño de Software
Damos Soluciones...
I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos
http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
Damos Soluciones...
I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos
http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon