salut,
merci beaucoup pour ton aide précieuse djibril, également pour la tienne jedai.
Je vous expose donc ce que j'ai fais :
1- J'ai créer le formulaire test.html suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="http://localhost/cgi-bin/test.pl" method="post" enctype="multipart/form-data" name="form1" target="_blank">
<input type="file" name="file">
<br>
<br>
<input type="submit" name="Submit" value="Envoyer">
</form>
</body>
</html> |
2- J'ai ensuite utiliser le code de djibril pour créer le script test.pl suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #!c:/EasyPHP/perl/bin/perl.exe -w
use strict;
use CGI;
my $query;
print "Content-type: text/html\n\n";
my $form = new CGI;
my $file = $form->param('file');
print $file;
#Methode pour uploader ton fichier
$file =~ s/.*[\/\\](.*)/$1/; # regex pour recuperer uniquememnt le nom du fichier
my $repertoire_dupload = ".";
# upload des fichiers d'analyse
my $upload_filehandle = $query->upload("file");
#upload("file"); file car c'est le nom du input dans ton html
open (UPLOAD, ">$repertoire_dupload/$file");
binmode UPLOAD;
while (my $ligne=<$upload_filehandle>) {
chomp($ligne);
print UPLOAD "$ligne\n";
}
close (UPLOAD); |
Bon les seuls changements par rapport au code de djibril c'est au niveau du shebang et au niveau de la ligne 5 où je déclare $query vu que j'obtiens cette erreur lorsque $query n'est pas déclarée :
Global symbol "$query" requires explicit package name at C:/EasyPHP/cgi-bin/test.pl line 13., referer: http://127.0.0.1/test/test.html
A ce stade, lorsque je réalise un test (en utilisant FireFox) j'obtiens ce qui suit :
1- un nouvel onglet dans lequel apparait uniquement le nom du fichier sélectionner (sûrement le "print $file" du test.pl ligne 9)
2- lorsque je consulte erreur.log j'ai le message suivant :
Can't call method "upload" on an undefined value at C:/EasyPHP/cgi-bin/test.pl line 14., referer: http://127.0.0.1/test/test.html
Voila... Je crois que je dois bouquiner un peu le module CGI !!! Et wé je l'avoue, les modules ce n'est pas mon fort
Enfin... votre aide ne sera pas de refus.
Encore merci.
Partager