Pessoal,
Faz algum tempo que uso esta função, pega aqui, para envio de arquivos pro FTP:
Código: Selecionar todos
function enviaftp()
#include "inkey.ch"
#include "fileio.ch"
#include "common.ch"
#include "Directry.ch"
#define eFTPSERVER1 'ftp.inaciocarvalho.com.br' // ENDEREÇO SERVIDOR FTP 01
#define eFTPPORTA 21 // PORTA DO FTP PARA BAIXAR ATUALIZAÇÕES DO SISTEMA
#define eFTPUSER 'promotor' // USUARIO DO FTP PARA BAIXAR ATUALIZAÇÕES DO SISTEMA
#define eFTPPASS 'xxxx' // SENHA DO FTP PARA BAIXAR ATUALIZAÇÕES DO SISTEMA
aDir0 := directory(arqv)
IF UPLOAD_ARQ( alltrim(pasta), alltrim(arqv) ) = .F.
@ maxrow(),1 say "Arquivo não enviado "
tone(261.7,23)
inkey(10)
return .f.
else
return .t.
ENDIF
RETURN NIL
STATIC FUNCTION UPLOAD_ARQ( FTPDIR, farq )
Local cUrl, oUrl, oFTP, cFTPSERVER:=''
cFTPSERVER:=eFTPSERVER1
cUrl := "ftp://" + eFTPUSER + ":" + eFTPPASS + "@" + cFTPSERVER
oUrl := tUrl():New( cUrl )
oFTP := tIPClientFtp():New( oUrl, .F. )
oFTP:nConnTimeout := 20000
oFTP:bUsePasv := .T.
oFTP:nDefaultPort := eFTPPORTA //PORTA DO FTP
oFTP:oUrl:cUserID := eFTPUSER
oFTP:oUrl:cServer := cFTPSERVER
oFTP:oUrl:cPassword := eFTPPASS
IF oFTP:Open( cUrl )
IF !oFTP:Cwd(ftpdir) // se não achar o diretorio ele cria
cria="N"
if us="I"
@ maxrow(),1 say "Pasta "+ftpdir+" inexistente no FTP; criar a pasta?"get cria pict "@!"
tone(261.7,33)
read
endif
if cria="S"
oFTP:MKD(ftpdir) // cria o diretorio
else
return .f.
endif
ENDIF
if oFTP:Cwd(ftpdir)=.f. // muda o diretorio
if vzerr=1 .or. int(vzerr/15)=vzerr/15
mandmail1("","Retornou .f. no cwd; COMUNS 431")
endif
vzerr++
return .f.
endif
if oFTP:reset()=.f.
mandmail1("","Retornou .f. no reset; COMUNS 438")
return .f.
endif
if oFtp:UploadFile( farq )=.f.
if usooff#"S"
@ maxrow(),1 say "Não é possível enviar o arquivo"
endif
return .f.
endif
oFTP:Close() // fecha a conexão do FTP
RETURN .T.
Desde anteontem, contudo, a função está dando um erro, retornando .f. na linha:
E o pior é que não é sempre retorna .f. Às vezes funciona, mas na maioria das vezes não.
Já testei abrir a pasta manualmente, usando o ftp do dos, e funciona perfeitamente. Pelo explorer do Windows também abre.
Alguém saberia me dizer se tem algum problema na função?