1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
| #!/usr/local/bin/perl
use Tk; #Utilisation de Tk
use Net::FTP;
#Définition de notre fonction de fermeture de l'application
sub Quitter
{
exit(0);
}
#Création de la fenêtre principale
$fen = MainWindow->new();
#Définition de la taille min de la fenêtre
$fen->minsize('800','600');
#Définition du title de la fenêtre
$fen->title("Client Ftp");
#Création de la barre de menu
$barre_menu = $fen->Frame(-relief => 'groove' , -borderwidth => 2);
#Création de la barre du menu général
$menu_gen = $barre_menu->Menubutton(
-text => 'Fichier' ,
-font => '{Garamond} 10',
-tearoff => 0 ,-menuitems => [
[ 'command' => 'Quitter' ,
-font => '{Garamond} 10',
-command => \&Quitter
]])->pack(-side=>left,-expand=>1);
$menu_gen = $barre_menu->Menubutton(
-text => 'help' ,
-font => '{Garamond} 10',
-tearoff => 0 ,-menuitems => [
[ 'command' => 'help' ,
-font => '{Garamond} 10',
-command =>\&Quitter
]])->pack(-side=>left,-expand=>1);
#Affichage du menu général à gauche
$menu_gen->pack(-side => 'left');
#Affichage de la barre de menu en haut de la fenêtre
$barre_menu->pack(-side => 'top', -anchor => 'n', -fill => 'x');
#host
$frame1 = $fen->Frame()->pack();
$frameG = $frame1->Frame()->pack(-side=>'left',-pady=>5);
$frameJ = $frame1->Frame()->pack(-side=>'right', -pady=>5);
$frameI = $frame1->Frame()->pack(-side=>'right', -pady=>5);
$frameD = $frame1->Frame()->pack(-side=>'right', -pady=>5);
$frameE = $frame1->Frame()->pack(-side=>'right', -pady=>5);
$frameF = $frame1->Frame()->pack(-side=>'right', -pady=>5);
$frameH = $frame1->Frame()->pack(-side=>'right', -pady=>5);
$frameG->Label(-text=>'Host:')->pack(-side=>'right',-padx=>5);
$frameE->Label(-text=>'Port :')->pack(-side=>'right',-padx=>5);
$frameF->Label(-text=>'Pass :')->pack(-side=>'right',-padx=>5);
$frameH->Label(-text=>'User :')->pack(-side=>'right',-padx=>5);
$frameE->Entry(-width => '10',-textvariable => \$val_pass , #variable de récupération du texte saisi
-font => '{Garamond} 10',
)->pack(
-pady => '5', #Marge externe du bouton
-padx => '5',
-ipady => '5', #Marge interne du bouton
-ipadx => '5',
-side => 'left', #positionnement à gauche
-anchor => 'n' #positionnement en haut de la fenêtre
);
$frameF->Entry(-width => '10',-textvariable => \$val_user , #variable de récupération du texte saisi
-font => '{Garamond} 10',
)->pack(
-pady => '5', #Marge externe du bouton
-padx => '5',
-ipady => '5', #Marge interne du bouton
-ipadx => '5',
-side => 'left', #positionnement à gauche
-anchor => 'n' #positionnement en haut de la fenêtre
);
$frameH->Entry(-width => '20',-textvariable => \$val_host , #variable de récupération du texte saisi
-font => '{Garamond} 10',
)->pack(
-pady => '5', #Marge externe du bouton
-padx => '5',
-ipady => '5', #Marge interne du bouton
-ipadx => '5',
-side => 'left', #positionnement à gauche
-anchor => 'n' #positionnement en haut de la fenêtre
);
#Ajout de la zone de saisie
$frameD->Entry(
-width => '3',-textvariable => '21', #variable de récupération du texte saisi
-font => '{Garamond} 10',
)->pack(
-pady => '5', #Marge externe du bouton
-padx => '5',
-ipady => '5', #Marge interne du bouton
-ipadx => '5',
-side => 'left', #positionnement à gauche
-anchor => 'n' #positionnement en haut de la fenêtre
);
$frameI->Button(
-text => 'Connect', #Texte du bouton
-font => '{Garamond} 10', #Nom et taille de la police utilisée
-command =>\&Connect,
)->pack(
-pady => '5', #Marge externe du bouton
-padx => '5',
-ipady => '5', #Marge interne du bouton
-ipadx => '5'
);
$frameJ->Button(
-text => 'Deconnect', #Texte du bouton
-font => '{Garamond} 10', #Nom et taille de la police utilisée
-command =>\&Deconnect,
)->pack(
-pady => '5', #Marge externe du bouton
-padx => '5', -ipady => '5', #Marge interne du bouton
-ipadx => '5', );
sub Connect
{
my $ftp = Net::FTP->new($val_host) or die "Error connecting to $host: $!";
$ftp->login($val_user,$val_pass) or die "Login failed: $!";
}
sub Deconnect
{
$ftp->quit or die "Error closing ftp connection: $!";
#LINE 132
}
MainLoop; |
Partager