Formulaire et telechargement de fichier

eliah -  
 eliah -
Quelqu'un peut il m'aider a trouver pourkoi ce code ne fonctionne pas:

 case Alignement:
	 if (isset($_REQUEST['alignement1'])){
	 $savefile=$Desktop.$_FILES["alignement1"]["name"];
	 $temp=$_FILES["alignement1"]["tmp_name"];
	 if(!move_uploaded_file ($temp,$savefile)){
	 echo "erreur de copie" ;
	 }
	 $nomfichier=$_FILES['alignement1']['name'];
	 $valeur=fread (fopen($nomfichier,"r"),filesize($nomfichier));
	 fclose($nomfichier);
	 $rien=unlink($savefile, $temp);
	}
	else {
	$valeur=$_POST['alignement1'];
	}
	break;
	}


En effet dans mon formulaire je veux pour un champs alignement
avoir la possibilité soit de le remplir par un fihcier a telecharger soit par un textarea.

Seulement je n'arrive pas a le faire.
Le telechargement de fichier tout seul fonctionne et le textarea tout seul fonctionnne mais quand je met un test plus rien ne marche.

Aidez moi please
A voir également:

5 réponses

eliah
 
C bon j'ai reussi a trouver la solution...

Juste une dernière chose, j'ai des warning qui apparaissent quand je recupere les valeurs de mon fichier (mais le telechargmeent fonctionne quand meme).

J'aimerai les masquer ou alors si vous savez pourkoi...
moi j'ai pas trouver

Voici les warning:
Warning: fclose(): supplied argument is not a valid stream resource in /usr/local/apache/serveurs/fonctions.cgi on line 200
 
 Warning: Wrong parameter count for unlink() in /usr/local/apache/serveurs/fonctions.cgi on line 201


et mon code pour telecharger le fichier:
if($_POST[truc]!=''){
	 $valeur=$_POST['truc'];
	}
	else {
	 $savefile=$Desktop.$_FILES["truc2"]["name"];
	 $temp=$_FILES["truc2"]["tmp_name"];
	 if(!move_uploaded_file ($temp,$savefile)){
	 echo "erreur de copie" ;
	 }
	 $nomfichier=$_FILES['truc2']['name'];
	 $valeur=fread (fopen($nomfichier,"r"),filesize($nomfichier));
	 fclose($nomfichier);
	 $rien=unlink($savefile,$temp);
	}


jpensai que ca venai des cotes mais quand je change j'ai toujours les erreurs..
0
sam3000 Messages postés 1226 Statut Membre 144
 
tu as une erreur au niveau de ta lecture de fichier, et le code de ELSE (la derniere partie appartient au ELSE):

if($_POST[truc]!=''){
	 $valeur=$_POST['truc'];
	}
	else {
	 $savefile=$Desktop.$_FILES["truc2"]["name"];
	 $temp=$_FILES["truc2"]["tmp_name"];
	 if(!move_uploaded_file ($temp,$savefile)){
	     echo "erreur de copie" ;
             $valeur="";
	 } else {
            $fichstrm=fopen($savefile,"r");
	    $valeur=fread ($fichstrm,filesize($fichstrm));
	    fclose($fichstrm);
            $rien=unlink($savefile,$temp);
            }
	}


je crois que le fichier ne reste pas sur le serveur apres le script? non?
c'est c'est ce que tu veux, tu n'a pas besoin de faire toutes ces fonctions ("move_uploaded_file" puis "unlink"), mais plutot travailler avec le fichier temporaire
0
eliah
 
merci de ton aide

encore une pitite question ca donne quoi si jme sert du fichier temporaire???

car effectivement je ne garde pas le fichier je garde juste le contenu de celui ci
0
sam3000 Messages postés 1226 Statut Membre 144
 
fait ça :
if($_POST[truc]!=''){
	 $valeur=$_POST['truc'];
	}
	else {
            $temp=$_FILES["truc2"]["tmp_name"];
            $fichstrm=fopen($temp,"r");
	    $valeur=fread ($fichstrm,filesize($fichstrm));
	    fclose($fichstrm);
            }
	}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eliah
 
Il m'affiche ca:

Warning: filesize() [function.filesize]: Stat failed for Resource id #9 (errno=2 - No such file or directory) in /usr/local/apache/serveurs/fonctions.cgi on line ..
0