Jump to content
Fivewin Brasil

FTP com Fivewin - exemplo


zekasan

Recommended Posts

Boa tarde.
Te passo dois exemplos, funcionando ok.


//
// File attributes
//

#define FILE_ATTRIBUTE_READONLY  1
#define FILE_ATTRIBUTE_HIDDEN    2
#define FILE_ATTRIBUTE_SYSTEM    4
#define FILE_ATTRIBUTE_DIRECTORY 16
#define FILE_ATTRIBUTE_ARCHIVE   32
#define FILE_ATTRIBUTE_NORMAL    128
#define FILE_ATTRIBUTE_TEMPORARY 256


//
// access types for InternetOpen()
//

#define INTERNET_OPEN_TYPE_PRECONFIG                    0   // use registry configuration
#define INTERNET_OPEN_TYPE_DIRECT                       1   // direct to net
#define INTERNET_OPEN_TYPE_PROXY                        3   // via named proxy
#define INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY  4   // prevent using java/script/INS


//
// manifests
//

#define INTERNET_INVALID_PORT_NUMBER    0           // use the protocol-specific default

#define INTERNET_DEFAULT_FTP_PORT       21          // default for FTP servers
#define INTERNET_DEFAULT_GOPHER_PORT    70          //    "     " gopher "
#define INTERNET_DEFAULT_HTTP_PORT      80          //    "     " HTTP   "
#define INTERNET_DEFAULT_HTTPS_PORT     443         //    "     " HTTPS  "
#define INTERNET_DEFAULT_SOCKS_PORT     1080        // default for SOCKS firewall servers.


//
// service types for InternetConnect()
//

#define INTERNET_SERVICE_FTP     1
#define INTERNET_SERVICE_GOPHER  2
#define INTERNET_SERVICE_HTTP    3
#define INTERNET_FLAG_PASSIVE 134217728


//
// flags for FTP
//

#define INTERNET_FLAG_TRANSFER_ASCII  1
#define INTERNET_FLAG_TRANSFER_BINARY 2

//-------------------------------------------------------------------


FUNCTION MandaFTP(host, usuario, senha, pasta, arquivo, dir, oquefazer, QuemChamou)

    LOCAL hInternet, hConnect
	Local afiles

    hInternet = INTERNETOPEN( "Anystring", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0 )

    hConnect = INTERNETCONNECT( hInternet, host, INTERNET_INVALID_PORT_NUMBER, usuario, senha, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 )

	if oquefazer = "pega"

	    if ! FTPGETFILE( hConnect, pasta+arquivo, arquivo, 0, FILE_ATTRIBUTE_ARCHIVE, 0, 0 )
			msgStop("Erro ao receber arquivo "+pasta+arquivo,"Atenção!")
		else
			SumLog(arquivo, "Recebido por ","FTP ")
		end

	else

		if  FTPPUTFILE( hConnect, dir+arquivo, pasta+arquivo, 0, 0 )
			if QuemChamou = "WT5f0A"
				msginfo("Arquivo enviado.","Sucesso!")
			end

			// crio log da transacao
			SumLog(arquivo, "Enviado por ","FTP ")
		else
			msgalert("Falha no envio do arquivo"+CRLF+;
					"Verifique conexão com a internet e firewall.","Problemas.")
					SumLog(arquivo, "Falhou ao enviar ","FTP ")
		end
	end




    INTERNETCLOSEHANDLE( hConnect )

    INTERNETCLOSEHANDLE( hInternet )


RETURN NIL

//==============================================================================================


FUNCTION MandaImg(host, usuario, senha, pasta, aJPG, dir, oquefazer, QuemChamou)

    LOCAL hInternet, hConnect
  local hFTPDir, aFiles := {}
   local oWin32FindData, cBuffer
   Local aonde, arquivo

   STRUCT oWin32FindData
      MEMBER nFileAttributes  AS DWORD
      MEMBER nCreationTime    AS STRING LEN 8
      MEMBER nLastReadAccess  AS STRING LEN 8
      MEMBER nLastWriteAccess AS STRING LEN 8
      MEMBER nSizeHight       AS DWORD
      MEMBER nSizeLow         AS DWORD
      MEMBER nReserved0       AS DWORD
      MEMBER nReserved1       AS DWORD
      MEMBER cFileName        AS STRING LEN 260
      MEMBER cAltName         AS STRING LEN  14
   ENDSTRUCT

    hInternet = INTERNETOPEN( "Anystring", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0 )

    hConnect = INTERNETCONNECT( hInternet, host, INTERNET_INVALID_PORT_NUMBER, usuario, senha, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 )

	if oquefazer = "vesetem"


	      cBuffer = oWin32FindData:cBuffer
	      hFTPDir = FtpFindFirstFile( hConnect, "*.*", @cBuffer, 0, 0 )
	      oWin32FindData:cBuffer = cBuffer
	      if ! Empty( oWin32FindData:cFileName )
	         aadd( aFiles, { oWin32FindData:cFileName,;
                         oWin32FindData:nSizeLow } )
	         while InternetFindNextFile( hFTPDir, @cBuffer )
	            oWin32FindData:cBuffer = cBuffer
	            aadd( aFiles, { oWin32FindData:cFileName,;
                            oWin32FindData:nSizeLow } )
	         end
	      endif
		if len(afiles)>0
			for i=1 to len(aJPG)
			 	aonde := ascan(afiles,aJpg[i])
				if aonde > 0

					adel(aJPG,aonde)  //fica na matriz somente o que vai ser enviado

				end

			next
		else
			msgAlert("Erro ao carregar Dir Remoto."+CRLF+"Conexão falhou."+CRLF+"Gere o relatório novamente.","Atenção:")
		end
	else

		aJPg := {}
	end

	if len(aJPG)>0

		for i=1 to len(aJPG)
			arquivo := aJPG[i]
			if  FTPPUTFILE( hConnect, dir+arquivo, pasta+arquivo, 0, 0 )
				if QuemChamou = "WT5f0A"
					msginfo("Arquivo enviado.","Sucesso!")
				end

				// crio log da transacao
				SumLog(arquivo, "Enviado por ","FTP ")
			else
				msgalert("Falha no envio do arquivo"+CRLF+;
						"dir+arquivo: "+dir+arquivo + CRLF+;
						"pasta+arquivo: "+pasta+arquivo+CRLF+;
					"Verifique conexão com a internet e firewall.","Problemas.")
					SumLog(arquivo, "Falhou ao enviar ","FTP ")
			end
		next
	end
    INTERNETCLOSEHANDLE( hConnect )

    INTERNETCLOSEHANDLE( hInternet )


RETURN NIL
//================================================================================================

#pragma BEGINDUMP

#include "windows.h"
#include "wininet.h"
#include "hbapi.h"


HB_FUNC( INTERNETOPEN )
{
    hb_retnl( ( LONG ) InternetOpen( hb_parc( 1 ), hb_parnl( 2 ), hb_parc( 3 ), hb_parc( 4 ), hb_parnl( 5 ) ) );
}


HB_FUNC( INTERNETCLOSEHANDLE )
{
    hb_retl( InternetCloseHandle( ( HINTERNET ) hb_parnl( 1 ) ) );
}


HB_FUNC( INTERNETCONNECT )
{
    hb_retnl( ( LONG ) InternetConnect( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), ( INTERNET_PORT ) hb_parnl( 3 ), hb_parc( 4 ), hb_parc( 5 ), hb_parnl( 6 ), hb_parnl( 7 ), hb_parnl( 8 ) ) );
}


HB_FUNC( FTPGETFILE )
{
    hb_retl( FtpGetFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), hb_parc( 3 ), hb_parl( 4 ), hb_parnl( 5 ), hb_parnl( 6 ), hb_parnl( 7 ) ) );
}


HB_FUNC( FTPPUTFILE )
{
    hb_retl( FtpPutFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), hb_parc( 3 ), hb_parnl( 4 ), hb_parnl( 5 ) ) );
}


HB_FUNC( FTPDELETEFILE )
{
    hb_retl( FtpDeleteFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) );
}


HB_FUNC( FTPCREATEDIRECTORY )
{
    hb_retl( FtpCreateDirectory( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) );
}


HB_FUNC( FTPREMOVEDIRECTORY )
{
    hb_retl( FtpRemoveDirectory( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) );
}


HB_FUNC( FTPFINDFIRSTFILE )
{
    hb_retnl( ( LONG ) FtpFindFirstFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), ( WIN32_FIND_DATA * ) hb_parc( 3 ), hb_parnl( 4 ), hb_parnl( 5 ) ) );
}


HB_FUNC( INTERNETFINDNEXTFILE )
{
    hb_retl( InternetFindNextFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) );
}

#pragma ENDDUMP

 

 

Link to comment
Share on other sites

  • 2 years later...

Bom dia,

 

Em 26/09/2018 at 12:18, Rogerio Figueira disse:

Boa tarde.
Te passo dois exemplos, funcionando ok.



//
// File attributes
//

#define FILE_ATTRIBUTE_READONLY  1
#define FILE_ATTRIBUTE_HIDDEN    2
#define FILE_ATTRIBUTE_SYSTEM    4
#define FILE_ATTRIBUTE_DIRECTORY 16
#define FILE_ATTRIBUTE_ARCHIVE   32
#define FILE_ATTRIBUTE_NORMAL    128
#define FILE_ATTRIBUTE_TEMPORARY 256


//
// access types for InternetOpen()
//

#define INTERNET_OPEN_TYPE_PRECONFIG                    0   // use registry configuration
#define INTERNET_OPEN_TYPE_DIRECT                       1   // direct to net
#define INTERNET_OPEN_TYPE_PROXY                        3   // via named proxy
#define INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY  4   // prevent using java/script/INS


//
// manifests
//

#define INTERNET_INVALID_PORT_NUMBER    0           // use the protocol-specific default

#define INTERNET_DEFAULT_FTP_PORT       21          // default for FTP servers
#define INTERNET_DEFAULT_GOPHER_PORT    70          //    "     " gopher "
#define INTERNET_DEFAULT_HTTP_PORT      80          //    "     " HTTP   "
#define INTERNET_DEFAULT_HTTPS_PORT     443         //    "     " HTTPS  "
#define INTERNET_DEFAULT_SOCKS_PORT     1080        // default for SOCKS firewall servers.


//
// service types for InternetConnect()
//

#define INTERNET_SERVICE_FTP     1
#define INTERNET_SERVICE_GOPHER  2
#define INTERNET_SERVICE_HTTP    3
#define INTERNET_FLAG_PASSIVE 134217728


//
// flags for FTP
//

#define INTERNET_FLAG_TRANSFER_ASCII  1
#define INTERNET_FLAG_TRANSFER_BINARY 2

//-------------------------------------------------------------------


FUNCTION MandaFTP(host, usuario, senha, pasta, arquivo, dir, oquefazer, QuemChamou)

    LOCAL hInternet, hConnect
	Local afiles

    hInternet = INTERNETOPEN( "Anystring", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0 )

    hConnect = INTERNETCONNECT( hInternet, host, INTERNET_INVALID_PORT_NUMBER, usuario, senha, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 )

	if oquefazer = "pega"

	    if ! FTPGETFILE( hConnect, pasta+arquivo, arquivo, 0, FILE_ATTRIBUTE_ARCHIVE, 0, 0 )
			msgStop("Erro ao receber arquivo "+pasta+arquivo,"Atenção!")
		else
			SumLog(arquivo, "Recebido por ","FTP ")
		end

	else

		if  FTPPUTFILE( hConnect, dir+arquivo, pasta+arquivo, 0, 0 )
			if QuemChamou = "WT5f0A"
				msginfo("Arquivo enviado.","Sucesso!")
			end

			// crio log da transacao
			SumLog(arquivo, "Enviado por ","FTP ")
		else
			msgalert("Falha no envio do arquivo"+CRLF+;
					"Verifique conexão com a internet e firewall.","Problemas.")
					SumLog(arquivo, "Falhou ao enviar ","FTP ")
		end
	end




    INTERNETCLOSEHANDLE( hConnect )

    INTERNETCLOSEHANDLE( hInternet )


RETURN NIL

//==============================================================================================


FUNCTION MandaImg(host, usuario, senha, pasta, aJPG, dir, oquefazer, QuemChamou)

    LOCAL hInternet, hConnect
  local hFTPDir, aFiles := {}
   local oWin32FindData, cBuffer
   Local aonde, arquivo

   STRUCT oWin32FindData
      MEMBER nFileAttributes  AS DWORD
      MEMBER nCreationTime    AS STRING LEN 8
      MEMBER nLastReadAccess  AS STRING LEN 8
      MEMBER nLastWriteAccess AS STRING LEN 8
      MEMBER nSizeHight       AS DWORD
      MEMBER nSizeLow         AS DWORD
      MEMBER nReserved0       AS DWORD
      MEMBER nReserved1       AS DWORD
      MEMBER cFileName        AS STRING LEN 260
      MEMBER cAltName         AS STRING LEN  14
   ENDSTRUCT

    hInternet = INTERNETOPEN( "Anystring", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0 )

    hConnect = INTERNETCONNECT( hInternet, host, INTERNET_INVALID_PORT_NUMBER, usuario, senha, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 )

	if oquefazer = "vesetem"


	      cBuffer = oWin32FindData:cBuffer
	      hFTPDir = FtpFindFirstFile( hConnect, "*.*", @cBuffer, 0, 0 )
	      oWin32FindData:cBuffer = cBuffer
	      if ! Empty( oWin32FindData:cFileName )
	         aadd( aFiles, { oWin32FindData:cFileName,;
                         oWin32FindData:nSizeLow } )
	         while InternetFindNextFile( hFTPDir, @cBuffer )
	            oWin32FindData:cBuffer = cBuffer
	            aadd( aFiles, { oWin32FindData:cFileName,;
                            oWin32FindData:nSizeLow } )
	         end
	      endif
		if len(afiles)>0
			for i=1 to len(aJPG)
			 	aonde := ascan(afiles,aJpg[i])
				if aonde > 0

					adel(aJPG,aonde)  //fica na matriz somente o que vai ser enviado

				end

			next
		else
			msgAlert("Erro ao carregar Dir Remoto."+CRLF+"Conexão falhou."+CRLF+"Gere o relatório novamente.","Atenção:")
		end
	else

		aJPg := {}
	end

	if len(aJPG)>0

		for i=1 to len(aJPG)
			arquivo := aJPG[i]
			if  FTPPUTFILE( hConnect, dir+arquivo, pasta+arquivo, 0, 0 )
				if QuemChamou = "WT5f0A"
					msginfo("Arquivo enviado.","Sucesso!")
				end

				// crio log da transacao
				SumLog(arquivo, "Enviado por ","FTP ")
			else
				msgalert("Falha no envio do arquivo"+CRLF+;
						"dir+arquivo: "+dir+arquivo + CRLF+;
						"pasta+arquivo: "+pasta+arquivo+CRLF+;
					"Verifique conexão com a internet e firewall.","Problemas.")
					SumLog(arquivo, "Falhou ao enviar ","FTP ")
			end
		next
	end
    INTERNETCLOSEHANDLE( hConnect )

    INTERNETCLOSEHANDLE( hInternet )


RETURN NIL
//================================================================================================

#pragma BEGINDUMP

#include "windows.h"
#include "wininet.h"
#include "hbapi.h"


HB_FUNC( INTERNETOPEN )
{
    hb_retnl( ( LONG ) InternetOpen( hb_parc( 1 ), hb_parnl( 2 ), hb_parc( 3 ), hb_parc( 4 ), hb_parnl( 5 ) ) );
}


HB_FUNC( INTERNETCLOSEHANDLE )
{
    hb_retl( InternetCloseHandle( ( HINTERNET ) hb_parnl( 1 ) ) );
}


HB_FUNC( INTERNETCONNECT )
{
    hb_retnl( ( LONG ) InternetConnect( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), ( INTERNET_PORT ) hb_parnl( 3 ), hb_parc( 4 ), hb_parc( 5 ), hb_parnl( 6 ), hb_parnl( 7 ), hb_parnl( 8 ) ) );
}


HB_FUNC( FTPGETFILE )
{
    hb_retl( FtpGetFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), hb_parc( 3 ), hb_parl( 4 ), hb_parnl( 5 ), hb_parnl( 6 ), hb_parnl( 7 ) ) );
}


HB_FUNC( FTPPUTFILE )
{
    hb_retl( FtpPutFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), hb_parc( 3 ), hb_parnl( 4 ), hb_parnl( 5 ) ) );
}


HB_FUNC( FTPDELETEFILE )
{
    hb_retl( FtpDeleteFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) );
}


HB_FUNC( FTPCREATEDIRECTORY )
{
    hb_retl( FtpCreateDirectory( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) );
}


HB_FUNC( FTPREMOVEDIRECTORY )
{
    hb_retl( FtpRemoveDirectory( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) );
}


HB_FUNC( FTPFINDFIRSTFILE )
{
    hb_retnl( ( LONG ) FtpFindFirstFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ), ( WIN32_FIND_DATA * ) hb_parc( 3 ), hb_parnl( 4 ), hb_parnl( 5 ) ) );
}


HB_FUNC( INTERNETFINDNEXTFILE )
{
    hb_retl( InternetFindNextFile( ( HINTERNET ) hb_parnl( 1 ), hb_parc( 2 ) ) );
}

#pragma ENDDUMP

 

 

Tens exemplos de envio e recebimento de imagens (JPG) meu caro?

Ladinilson Sousa

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...