[web] CGI - upload de fichier
Bonjour a tous, j'essaye de faire un petit cgi en perl qui permettrai d'uploader un fichier sur le serveur ou se trouve le cgi.
voici le code html correspondant au formulaire de choix du fichier:
Code:
1 2 3 4 5 6
|
<form action="/cgi-bin/upload.pl" method="POST" ENCTYPE="multipart/form-data">
<p>selectionne un fichier:</p>
<input type="FILE" name="file">
<input type="SUBMIT">
</form> |
Et voici le script perl de "upload.pl":
Code:
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
|
#!/usr/bin/perl -w
use strict;
use CGI;
use Fcntl qw( :DEFAULT :flock);
print "Content-type: text/html\n\n";
$CGI::DISABLE_UPLOADS = 0;
$CGI::POST_MAX = -1;
my $q = new CGI;
my $file = $q->param("file") or die("probleme fichier: $!");
my $handle = $q->upload($file) or die ("upload louper: $!");
open (FIC, ">essai") or die("Erreur fichier: $!");
while(<$handle>){
print FIC $_;
}
close FIC; |
Et voici l'erreur ( log apache ) que le script produit:
[Wed May 25 23:45:39 2005] [error] [client 127.0.0.1] upload louper: Inappropriate ioctl for device at /usr/share/apache2/cgi-bin/upload.pl line 19., referer: http://localhost.localdomain/divers/upload.html
je me pose plusieur questions :? :
C'est quoi ce ioctl et qu'ai-je fait de mal ??
Et que signifie exactement la ligne: use Fcntl qw( :DEFAULT :flock);
Voila :D
Merci d'avance,
TronsoT