Classe para enviar arquivos para FTP
Exemplo da Rotina:
oFtp := tFTPClient():New()
Exemplo 1- Envia arquivo para FTP:
Static Function fUpFile(cFileOrig, nSegundos) Local cServer := "server.site.com" Local nPort := 21 Local cUser := "usuario" Local cPass := "senha@123" Local cFTPDest := "/pasta_no_ftp/" Local cDataTemp := "\x_ftp_temp\" Local cNameFile := "" Local cFileDest := "" Default cFileOrig := "" Default nSegundos := 5 //Se tiver o arquivo e o destino If ! Empty(cFileOrig) oFtp := tFTPClient():New() //Tenta estabelecer a conexão If oFtp:FTPConnect(cServer, nPort, cUser, cPass) == 0 //Pega apenas o nome do arquivo com a extensão cNameFile := SubStr(cFileOrig, RAt("\", cFileOrig) + 1, Len(cFileOrig)) cFileDest := cValToChar(Year(Date())) + "_" + StrZero(Month(Date()), 2) + "-" + cNameFile //Se não existir a pasta temporária dentro da Protheus Data, cria ela If ! ExistDir(cDataTemp) MakeDir(cDataTemp) EndIf //Copia o arquivo origem para dentro da Protheus Data CpyT2S(cFileOrig, cDataTemp) //Muda o diretório do FTP If oFtp:ChDir(cFTPDest) == 0 //Tenta fazer o upload da Protheus Data para o destino no FTP If oFtp:SendFile(cDataTemp + cNameFile, Alltrim(cFTPDest + cFileDest)) == 0 //Sleep(nSegundos * 1000) u_MsgLog("Atenção", "Arquivo copiado com sucesso!" + CRLF + "Acesse em site.com.br" + StrTran((cFTPDest + cFileDest), "/public_html", "")) Else MsgStop("Falha ao copiar o arquivo para o FTP!", "Atenção") EndIf Else MsgStop("Não foi possível mudar o diretório de Upload!", "Atenção") EndIf //Fecha a conexão oFtp:Close() Else MsgStop("Erro de conexão!", "Atenção") EndIf EndIf Return