Comment uploader un fichier ?

Le forum de l'Annuaire Francophone des Scripts CGI: CGI : Cours CGI: Comment uploader un fichier ?

jean duffas

samedi 30 décembre 2000 - 14h39
bonjour,

j'essaye d'uploader un fichier word avec les
instructions suivantes :


open (fichier, ">../$nom.doc");
while
($bytesread=read($filename,$buffer,1024))
{print fichier $buffer;}
close (fichier);


le resultat est un fichier qui pese 0 ko

si j'ote la 2 eme ligne (while ...)
le fichier pese bien quelquechose, il contient
bien ce qu'il devrait contenir, mais il contient
en plus des donnees relatives au
telechargement, comme le nom, le format,
etc.

que me conseillez vous ?

Frédéric (Frédéric)

samedi 30 décembre 2000 - 21h00
Bonjour,

il y a un autre thread ou le problème de l'upload est abordé.
http://www.scripts-fr.com/forum/cgi-bin/show.cgi?29/135
Avez vous vérifié que votre formulaire soit déclaré en multipart.
Quelle librairie utilisez vous pour faire l'upload ? cgi-lib ou CGI.pm ?

jean duffas

samedi 30 décembre 2000 - 21h19
le formulaire erst bien déclaré en multipart,
...quand a la librarie, je ne sais pas trop (j'ai
du oublier d'y faire appel ...comment fait on
cela ?)

voici le script en entier :

#!/usr/local/bin/perl

#--------------- Récupération des
informations---------------


if ($ENV{'REQUEST_METHOD'} eq "POST" ) {
read(STDIN, $buffer,
$ENV{'CONTENT_LENGTH'});
$Recu="STDIN (Methode POST)" }
else {
$Recu="QUERY_STRING (Methode GET)";
$buffer = $ENV{'QUERY_STRING'};
}
# Traitement et découpage.
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%(..)/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}

$filename=$FORM{filename};

#----------------------variable pour
test--------------------

$nom="toto";

#---------------------upload proprement
dit------------------

open (fichier, ">../baset/fiches2/Jean
Duffas/$nom.txt");
while
($bytesread=read($filename,$buffer,1024))
{print fichier $buffer;}
close (fichier);


#------------------redirection apres
l'upload-----------------

print location ............etc.

exit;


Ajouter un message


Ceci est une zone publique. Si vous n'avez pas de compte, entrez votre nom dans le champ "Identificateur" et laissez le mot de passe vide. Votre adresse E-mail est facultative.
Identificateur :  
Mot de passe :
E-mail :
Poster "anonymement"