Voici le code complet. Mais il va falloir prévoir des images ou alors les remplacer par des boutons gadgets
A vous de jouer, soit vous remplacez toutes les images par des boutons en gardant leur nom, soit vous prévoyez des images..
Code : Tout sélectionner
;Ftp test FTP personnel
Enumeration
#winmenu
#frame1
#frame2
#frame3
#frame4
#txtServeurFtp
#txtUtilisateur
#txtMotDePasse
#txtracineftp
#racineftp
#retourRacineFtp
#ServeurFtp
#Utilisateur
#MotDePasse
#Connecter
#Envoyer
#Telecharger
#Supprimer
#txtCheminLocal
#txtCheminFtp
#CheminLocal
#CheminFtp
#Parcourir
#gridlocal
#gridftp
#quitter
#initialiser
#pb
#statut
EndEnumeration
;------------------------------------------------------------------------------------------------------------------------------
UseJPEGImageDecoder()
UsePNGImageDecoder()
imgftp = CatchImage(0, ?imgftp)
parc = CatchImage(1, ?parc)
ouvrir=CatchImage(2, ?ouvrir)
imgEnvoyer=CatchImage(3, ?imgEnvoyer)
imgTelecharger=CatchImage(4, ?imgTelecharger)
imgSupprimer=CatchImage(5, ?imgSupprimer)
DataSection
imgftp:
IncludeBinary "images\imgftp.png"
parc:
IncludeBinary "images\parc.jpg"
ouvrir:
IncludeBinary "images\Ouvrir.jpg"
imgEnvoyer:
IncludeBinary "images\imgsend.png"
imgTelecharger:
IncludeBinary "images\imgupload.png"
imgSupprimer:
IncludeBinary "images\imgdel.png"
EndDataSection
;------------------------------------------------------------------------------------------------------------------------------
Global ServeurFtp$,Utilisateur$,MotDePasse$,fichier$,wrow,type$,ext$,img$
Global CheminLocal$,CheminFtp$,FichierLocal$,fichierFtp$,Resultat,string$,ExitMenu
;-------------------------------- Test si image--------------------------------- --------------------
Procedure Is_Image(string$)
Result=0
Img$=UCase(string$)
If img$="JPG" Or img$="PNG" Or img$="GIF" Or img$="TIFF" Or img$="BMP" Or img$="JPEG"
Result=1
EndIf
ProcedureReturn Result
EndProcedure
;------------------------------------------------------------------------------------------------------------------------------
Procedure AfficherDossierFtp()
ClearGadgetItemList(#gridftp)
If ExamineFTPDirectory(0)
While NextFTPDirectoryEntry(0)
fichier$=FTPDirectoryEntryName(0)
If FTPDirectoryEntryType(0)=#PB_FTP_Directory
type$="Dossier"
Else
ext$=GetExtensionPart(fichier$)
type$="Fichier " + ext$
If Is_Image(ext$)
type$="Image " + ext$
EndIf
If ext$="ico" Or ext$="ICO"
type$="Icône"
EndIf
EndIf
If fichier$<>"." And fichier$<>".."
AddGadgetItem(#gridftp,-1,fichier$ + Chr(10) + type$)
If type$="Dossier"
SetGadgetItemColor(#gridftp,wrow,#PB_Gadget_BackColor,RGB(237, 215, 74),0)
SetGadgetItemColor(#gridftp,wrow,#PB_Gadget_BackColor,RGB(237, 215, 74),1)
EndIf
wrow=wrow+1
EndIf
Wend
EndIf
EndProcedure
;------------------------------------------------------------------------------------------------------------------------------
Procedure Connecter()
ClearGadgetItemList(#gridftp)
ServeurFtp$=GetGadgetText(#ServeurFtp)
Utilisateur$=GetGadgetText(#Utilisateur)
MotDePasse$=GetGadgetText(#MotDePasse)
CheminFtp$=GetGadgetText(#racineftp)
SetGadgetText(#CheminFtp,CheminFtp$)
wrow=0
If Len(ServeurFtp$)<=0
MessageRequester("Erreur","Serveur ftp incorrect ! ")
Goto fin_connecter
EndIf
If Len(Utilisateur$)<=0
MessageRequester("Erreur","Nom d'utilisateur incorrect ! ")
Goto fin_connecter
EndIf
If OpenFTP(0,ServeurFtp$,Utilisateur$,MotDePasse$)
SetFTPDirectory(0,CheminFtp$)
AfficherDossierFtp()
Else
Debug "Impossible de se connecter à " + serveurftp$ + " !"
Goto Fin_connecter
EndIf
Fin_connecter:
EndProcedure
;------------------------------------------------------------------------------------------------------------------------------
Procedure Envoyer()
wpas=0
SetGadgetState(#pb,0)
SetGadgetText(#statut,"")
If CountGadgetItems(#gridftp)<=0
MessageRequester("Erreur","Vous n'êtes pas connecté au serveur ftp ! ")
Goto fin_Envoyer
EndIf
fichier$=GetFilePart(FichierLocal$)
SetGadgetText(#statut,"Transfert de fichier " + fichier$ + " en cours...")
wpas=1
SetGadgetState(#pb,wpas)
If SendFTPFile(0, FichierLocal$,fichier$)
For wpas=1 To 300
SetGadgetState(#pb,wpas)
Delay(10)
Next wpas
SetGadgetText(#Statut,"Le fichier a été transféré avec succès.")
AddGadgetItem(#gridftp,-1,fichier$+Chr(10)+type$)
Else
SetGadgetText(#Statut,"Le fichier n'a pas pu être transféré !")
EndIf
Fin_Envoyer:
EndProcedure
;------------------------------------------------------------------------------------------------------------------------------
Procedure Telecharger()
wpas=0
SetGadgetState(#pb,0)
SetGadgetText(#statut,"")
If CountGadgetItems(#gridftp)<=0
MessageRequester("Erreur","Vous n'êtes pas connecté au serveur ftp ! ")
Goto fin_telecharger
EndIf
CheminLocal$=GetGadgetText(#CheminLocal)
If Len(CheminLocal$)<=0 And CountGadgetItems(#gridlocal)<=0
MessageRequester("Erreur","Indiquez le chemin de destination !")
Goto fin_telecharger
EndIf
fichier$=FichierFTP$
SetGadgetText(#statut,"Téléchargement du fichier " + fichier$ + " en cours...")
wpas=1
SetGadgetState(#pb,wpas)
Sfile.s=FichierFtp$
Dfile.s=CheminLocal$+FichierFtp$
If ReceiveFTPFile(0,sfile,dFile,0)
Debug "ok"
Else
Debug "error"
EndIf
; For wpas=1 To 300
; SetGadgetState(#pb,wpas)
; Delay(10)
; Next wpas
; SetGadgetText(#Statut,"Le fichier a été téléchargé avec succès.")
; AddGadgetItem(#gridlocal,-1,CheminLocal$+FichierFtp$+Chr(10)+type$)
;Else
; SetGadgetText(#Statut,"Le fichier n'a pas pu être téléchargé !")
;EndIf
fin_telecharger:
EndProcedure
;------------------------------------------------------------------------------------------------------------------------------
Procedure Supprimer()
wpas=0
SetGadgetState(#pb,0)
SetGadgetText(#statut,"")
If CountGadgetItems(#gridftp)<=0
MessageRequester("Erreur","Il semble que vous n'êtes pas connecté au serveur ftp ! ")
Goto fin_supprimer
EndIf
fichier$=FichierFTP$
SetGadgetText(#statut,"Suppression du fichier " + fichier$ + " en cours...")
If type$<>"Dossier"
If DeleteFTPFile(0,fichier$)
SetGadgetText(#Statut,"Le fichier a été supprimé")
For wrow=0 To CountGadgetItems(#gridftp)-1
fichier$=GetGadgetItemText(#gridftp,wrow,0)
If fichier$=fichierFtp$
RemoveGadgetItem(#gridftp,wrow)
wrow=CountGadgetItems(#gridftp)-1
EndIf
Next wrow
Else
SetGadgetText(#Statut,"Le fichier n'a pas pu être supprimé !")
EndIf
EndIf
fin_supprimer:
EndProcedure
;------------------------------------------------------------------------------------------------------------------------------
Procedure AfficherDossierLocal()
ClearGadgetItemList(#gridlocal)
wrow=0
CheminLocal$=GetGadgetText(#CheminLocal)
If ExamineDirectory(0, CheminLocal$, "*.*")
While NextDirectoryEntry(0)
fichier$=DirectoryEntryName(0)
If DirectoryEntryType(0)= #PB_DirectoryEntry_Directory
type$="Dossier"
Else
ext$=GetExtensionPart(fichier$)
type$="Fichier " + ext$
If Is_Image(ext$)
type$="Image " + ext$
EndIf
If ext$="ico" Or ext$="ICO"
type$="Icône"
EndIf
EndIf
If fichier$<>"." And fichier$<>".." And UCase(fichier$)<>"THUMBS.DB"
AddGadgetItem(#gridlocal,-1,CheminLocal$+fichier$ + Chr(10) + type$)
If type$="Dossier"
SetGadgetItemColor(#gridlocal,wrow,#PB_Gadget_BackColor,RGB(237, 215, 74),0)
SetGadgetItemColor(#gridlocal,wrow,#PB_Gadget_BackColor,RGB(237, 215, 74),1)
EndIf
wrow=wrow+1
EndIf
Wend
FinishDirectory(0)
EndIf
EndProcedure
;------------------------------------------------------------------------------------------------------------------------
InitNetwork()
ExamineDesktops()
wlar=DesktopWidth(0)-300
whaut=DesktopHeight(0)-100
OpenWindow(#winmenu,0,0,wlar,whaut,"FTP PERSONNEL - Par Omega - (OS: winXP et +, RAM>=1Go)", #PB_Window_ScreenCentered|#PB_Window_TitleBar | #PB_Window_SystemMenu |#PB_Window_SizeGadget |#PB_Window_TitleBar |#PB_Window_MinimizeGadget)
If CreateGadgetList(WindowID(#winmenu))
wrow=10
Frame3DGadget(#frame1, 10, wrow, 540,120, "Informations de connection...", #PB_Frame3D_Flat)
ButtonImageGadget(0,630,wrow,370,ImageHeight(0)-10,ImageID(0))
wrow=wrow+20
TextGadget(#txtserveurftp,20, wrow, 150, 20, "SERVEUR FTP :")
StringGadget(#serveurftp,180, wrow, 200, 20, "")
ButtonGadget(#Connecter, 410, wrow-2, 100, 28,"Se connecter")
ButtonGadget(#Initialiser,410, wrow+34, 100, 28,"Initialiser")
ButtonGadget(#quitter, 410, wrow+68, 100, 28,"Quitter")
wrow=wrow+22
TextGadget(#txtUtilisateur,20, wrow, 150, 20, "UTILISATEUR :")
StringGadget(#Utilisateur,180, wrow, 200, 20, "")
wrow=wrow+22
TextGadget(#txtMotDePasse,20, wrow, 150, 20, "MOT DE PASSE : ")
StringGadget(#MotDePasse,180, wrow, 200, 20, "", #PB_String_Password)
wrow=wrow+22
TextGadget(#txtRacineftp,20, wrow,150, 20, "REPERTOIRE RACINE :")
StringGadget(#Racineftp,180, wrow, 200, 20, "public_html")
wrow=wrow+50
TextGadget(#txtCheminLocal,10, wrow, 120, 20, "DOSSIER LOCAL >>")
StringGadget(#CheminLocal,125, wrow, 390, 20, "")
ButtonImageGadget(#Parcourir,520,wrow-3,25,25,ImageID(1))
TextGadget(#txtCheminFtp,630, wrow, 100, 20, "DOSSIER FTP >>")
StringGadget(#CheminFtp,730, wrow, 230, 20, "")
ButtonImageGadget(#RetourRacineFtp,975,wrow-3,25,25,ImageID(2))
wrow=wrow+30
ListIconGadget(#gridlocal,10, wrow,540,250, "Fichiers (espace local)",400,#PB_ListIcon_GridLines )
AddGadgetColumn(#gridlocal,1, "Type",100)
ButtonImageGadget(#Envoyer,560,wrow+30,ImageWidth(3),ImageHeight(3),ImageID(3))
ButtonImageGadget(#Supprimer,560,wrow+100,ImageWidth(5),ImageHeight(5),ImageID(5))
ButtonImageGadget(#Telecharger,560,wrow+170,ImageWidth(4),ImageHeight(4),ImageID(4))
ListIconGadget(#gridftp,630, wrow,370,250, "Fichiers (espace serveur ftp)",250,#PB_ListIcon_GridLines )
AddGadgetColumn(#gridftp,1, "Type",100)
wrow=wrow+260
ProgressBarGadget(#pb,10,wrow,540,15,0,300)
wrow=wrow+26
TextGadget(#statut,10, wrow, 700, 20, "")
EndIf
GadgetToolTip(#Parcourir,"Sélectionnez un dossier/fichier...")
GadgetToolTip(#retourRacineFtp,"Revenir à la racine du serveur...")
GadgetToolTip(#Envoyer,"Transférer les fichiers vers le serveur ftp")
GadgetToolTip(#Telecharger,"Télécharger le fichier sélectionné")
GadgetToolTip(#Supprimer,"Supprimer le fichier sélectionné")
SetGadgetColor(#CheminLocal,#PB_Gadget_FrontColor,RGB(60, 51, 195))
SetGadgetColor(#CheminFtp,#PB_Gadget_FrontColor,RGB(60, 51, 195))
SetGadgetColor(#statut,#PB_Gadget_FrontColor,RGB(41, 42, 190))
SetGadgetColor(#gridftp,#PB_Gadget_FrontColor,RGB(124, 65, 158))
SetGadgetColor(#gridlocal,#PB_Gadget_FrontColor,RGB(24, 90, 169))
SetGadgetColor(#serveurftp,#PB_Gadget_FrontColor,RGB(82, 41, 143))
SetGadgetColor(#utilisateur,#PB_Gadget_FrontColor,RGB(82, 41, 143))
SetGadgetColor(#motdepasse,#PB_Gadget_FrontColor,RGB(82, 41, 143))
SetGadgetColor(#racineftp,#PB_Gadget_FrontColor,RGB(82, 41, 143))
If LoadFont(1, "Calibri", 10,#PB_Font_Bold)
SetGadgetFont(#gridftp, FontID(1))
EndIf
AddKeyboardShortcut(#Winmenu,#PB_Shortcut_Return,111)
Repeat
EventId=WaitWindowEvent()
If EventID = #PB_Event_Menu
Select EventMenu()
Case 111
If GetFocus_() = GadgetID(#CheminLocal)
AfficherDossierlocal()
ElseIf GetFocus_() = GadgetID(#serveurftp)
SetFocus_(GadgetID(#utilisateur))
ElseIf GetFocus_() = GadgetID(#utilisateur)
SetFocus_(GadgetID(#motdepasse))
ElseIf GetFocus_() = GadgetID(#motdepasse)
SetFocus_(GadgetID(#racineftp))
ElseIf GetFocus_() = GadgetID(#racineftp)
connecter()
EndIf
EndSelect
EndIf
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #Connecter
Connecter()
Case #RetourRacineftp
Connecter()
Case #Parcourir
CheminInitial$ = "C:\" ; Répertoire par défaut qui sera affiché (une chaîne vide est aussi possible)
Chemin$ = PathRequester("Choisissez un dossier", CheminInitial$)
If Chemin$
SetGadgetText(#CheminLocal,chemin$)
AfficherDossierLocal()
EndIf
Case #gridftp
wrow=GetGadgetState(#gridftp)
If wrow>=0 And CountGadgetItems(#gridftp)>0
fichier$=GetGadgetItemText(#gridftp,wrow,0)
type$=GetGadgetItemText(#gridftp,wrow,1)
If type$="Dossier"
SetFTPDirectory(0,fichier$)
SetGadgetText(#CheminFtp,fichier$)
AfficherDossierFtp()
Else
FichierFtp$=fichier$
EndIf
EndIf
Case #gridlocal
wrow=GetGadgetState(#gridlocal)
If wrow>=0 And CountGadgetItems(#gridlocal)>0
fichier$=GetGadgetItemText(#gridlocal,wrow,0)
type$=GetGadgetItemText(#gridlocal,wrow,1)
If type$="Dossier"
SetGadgetText(#CheminLocal,fichier$+"\")
AfficherDossierlocal()
Else
fichierLocal$=fichier$
EndIf
EndIf
Case #Envoyer
If Len(fichierLocal$)>0
Envoyer()
EndIf
Case #Telecharger
If Len(fichierFtp$)>0
Telecharger()
EndIf
Case #Supprimer
If Len(fichierFtp$)>0
Supprimer()
EndIf
Case #Quitter
ExitMenu=1
EndSelect
EndIf
If EventID=#PB_Event_CloseWindow
ExitMenu=1
EndIf
Until ExitMenu=1
End