IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

[web] CGI - upload de fichier


Sujet :

Web Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 27
    Points : 24
    Points
    24
    Par défaut [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 : 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 le script perl de "upload.pl":

    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;
    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( EFAULT :flock);


    Voila


    Merci d'avance,

    TronsoT

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    voilà de la doc
    Si t'as juste besoin de travailler sur le fichier, un param suffit pour recuperer le fichier et ensuite tu travailles dessus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    my $file = $q->param("file") or die("probleme fichier: $!"); 
    open (FIC, ">essai") or die("Erreur fichier: $!"); 
    open (FILE , "$file") or die ("impossible ouverture fichier: $!");
     
    while(<FILE >){ 
    print FIC $_; 
    } 
     
    close FILE;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. formulaire web avec upload de fichier
    Par olivier1209 dans le forum Langage
    Réponses: 14
    Dernier message: 01/06/2011, 15h08
  2. Serveur Web et upload de fichier
    Par dondano dans le forum Langage
    Réponses: 3
    Dernier message: 23/02/2007, 14h33
  3. Apache / CGI en C et upload de fichier
    Par Gédéon dans le forum Apache
    Réponses: 1
    Dernier message: 10/08/2005, 20h03
  4. Réponses: 2
    Dernier message: 19/06/2003, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo