2010-11-15 4 views
-1

Salut J'essaie de télécharger le fichier image en utilisant perl cgi-application. Je ne sais pas ce que je fais mal - mais un fichier image vide (avec le bon nom) est enregistré.Comment télécharger un fichier en utilisant CGI APPLICATION


mon image $ = $ auto> query-> param ('image');
my $ buffer; mon $ bytesread;

ouvert (OUTFILE, ">> $ rép_utilisateur/profile_picture/$ image"); While ($ bytesread = read ($ image, $ buffer, 1024)) {
print OUTFILE $ buffer;
}

Répondre

3

Lisez la section "CREATION D'UN FICHIER DE TÉLÉCHARGEMENT DE FICHIER" dans la documentation CGI.pm. Là, vous verrez que la méthode upload va retourner un handle de fichier.

my $fh = $self->query->upload('picture'); 

    my $buffer; my $bytesread; 
    while ($bytesread = read($fh, $buffer, 1024)) { 
     ... 
    } 
+0

J'ai vu que la méthode de téléchargement ne fonctionne cependant qu'avec du CGI ordinaire et pas avec cgi :: application – prat

+0

Puisque 'query()' renvoie un objet 'CGI' ordinaire, il devrait fonctionner correctement. – Quentin

+0

C'est ce à quoi je m'attendais - mais ce n'est pas le cas. D'autres se sont plaints à ce sujet dans les forums. C'est probablement un bug dans cgi :: application. – prat

0

Ne pas oublier votre élément de formulaire HTML doit également spécifier enctype = « multipart/mixte », sinon le filestream de téléchargement ne sont pas envoyés.

Questions connexes