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:
Et voici le script perl de "upload.pl":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 l'erreur ( log apache ) que le script produit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
[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( EFAULT :flock);
Voila
Merci d'avance,
TronsoT
Partager