Connexion FTP

Mise en place en basic Panoramic

Comme le titre l'indique, il est possible de récupérer ou de transférer des fichiers via FTP à partir d'un programme écrit en basic Panoramic.

Rien de tel qu'un petit exemple pour expliquer la chose...

Tout d'abord un grand merci à DJ Peters qui nous a fournit tout les fichiers nécessaires pour réaliser cela !!!

Nous avons besoin d'une DLL qui va effectuer tout le travail et des deux fichiers TCP_INCLUDE2.bas et FTP_INCLUDE2.bas. Ces deux fichiers sont les librairies PANORAMIC qui contiennent les fonctions nécessaires pour établir une connexion FTP. Ils doivent être inclus en début de programme :

#include "TCP_INCLUDE2.bas"
#include "FTP_INCLUDE2.bas"

Nous allons voir en détail quelques unes de ces fonctions puis au final un petit programme d'exemple.

Les différentes commandes:

Ouvrir une connexion: FTPConnect

Pour établir la connexion, il nous faut appeler la procédure FTPConnect. Cette procédure a besoin de trois variables:

La variable FTP_OK% renvoie 1 si la connexion s'est correctement réalisée.

Exemple:

FTP_SERVER$ = "ftp.monSiteFtp.org"
FTP_USER$="toto"
FTP_PASSWORD$ = "MonMotDePasse"
gosub FTPConnect
if FTP_OK% <> 1
  message "Echec de connection !"
end_if

Sélectionner un répertoire : FTPCWD

Change Working Directory : cette commande permet de changer le répertoire courant. Cette commande nécessite le chemin d'accès au répertoire à atteindre comme argument (variable FTP_DIR$).
La variable FTP_OK% est à 1 si la commande a été correctement réalisée.

Récupérer un fichier: FTPRETR

Cette commande (RETRIEVE) demande au serveur FTP une copie du fichier. Elle a besoin de deux variables:

La variable FTP_OK% renvoie 1 si la commande s'est correctement réalisée.
La variable FTP_FIL_SIZE% renvoie le nombre d'octets transférés.

Fermer la connexion: FTPDisconnect

Cette procédure doit être appelée pour clôturer la connexion.

Note : Elle ferme le control channel et exécute la commande QUIT.

Exemple de téléchargement d'une image :

Nous avons une image logo.gif dans le répertoire 'img' sur le serveur. On souhaite télécharger cette image et la sauvegarder sur notre disque dur en tant que image.gif.

Note: Vous pouvez sélectionner l'ensemble du code en double-cliquant dessus.

#include "TCP_INCLUDE2.bas"
#include "FTP_INCLUDE2.bas"
 
' MSG_LOG%: Cette variable permet de basculer en mode "verbose"
' l'objet MSG_LOG% doit être OBLIGATOIREMENT un mémo ou une liste
MSG_LOG% = 1 : ' Valeur par défaut = 0 (désactivé)
memo MSG_LOG% : width MSG_LOG%, width(0) - 5
height MSG_LOG%, height(0) - 20
 
' on établi la connexion avec le serveur FTP
 
FTP_SERVER$ = "ftp.monSiteFtp.org"
FTP_USER$ = "toto"
FTP_PASSWORD$ = "MonMotDePasse"
gosub FTPConnect
if FTP_OK% = 1
 
  ' on sélectionne le répertoire img du serveur FTP
  FTP_DIR$ = "/img" : gosub FTPCWD
  if FTP_OK% = 1
 
    ' puis on télécharge le fichier logo.gif et on le sauvegarde
    ' sous le nom image.gif sur notre disque
    FTP_SOURCE$ = "logo.gif" : FTP_TARGET$ = "image.gif"
    gosub FTPRETR
 
    if FTP_OK% = 1
      message "le fichier "+FTP_SOURCE$+" a été sauvegardé en tant que " + FTP_TARGET$
    else
      message "Echec de téléchargement!"
    end_if
  else
    message "le répertoire "+FTP_DIR$+" n'existe pas ou est inaccessible!"
  end_if
  ' on a fini le téléchargement : on ferme la connexion
  gosub FTPDisconnect
else
  message "Impossible de se connecter à " + FTP_SERVER$
end_if

C'est tout simple n'est-ce pas ? smil_01

Les différentes commandes:

Sauvegarder un fichier sur le serveur: FTPSTOR

De même que pour le téléchargement, on utilise les variables FTP_SOURCE$ et FTP_TARGET$.

FTP_SOURCE$ = "source.gif"
FTP_TARGET$ = "destination.gif"
gosub FTPSTOR

 

Le principe de l'appel est toujours le même quelque soit la commande. Un tableau récapitulatif des commandes se trouve sur la page suivante. Le plus simple, c'est de faire des essais et de regarder ce que renvoie la commande...

Page :


--- Page 1/2 ---