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 137 138
| #!/usr/bin/perl
use strict;
use warnings;
use Tk; #Utilisation de Tk
use Net::FTP;
my ($val_user,$val_pass, $val_host, $host, $ftp) =();
#Création de la fenêtre principale
my $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
my $barre_menu = $fen->Frame(-relief => 'groove' , -borderwidth => 2);
#Création de la barre du menu général
my $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
my $frame1 = $fen->Frame()->pack();
my $frameG = $frame1->Frame()->pack(-side=>'left',-pady=>5);
my $frameJ = $frame1->Frame()->pack(-side=>'right', -pady=>5);
my $frameI = $frame1->Frame()->pack(-side=>'right', -pady=>5);
my $frameD = $frame1->Frame()->pack(-side=>'right', -pady=>5);
my $frameE = $frame1->Frame()->pack(-side=>'right', -pady=>5);
my $frameF = $frame1->Frame()->pack(-side=>'right', -pady=>5);
my $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', );
#Définition de notre fonction de fermeture de l'application
sub Quitter {
exit(0);
}
sub Connect {
$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: $!";
}
MainLoop; |
Partager