Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/12/2007, 10h43   #1
Candidat au titre de Membre du Club
 
Inscription : août 2007
Messages : 40
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 40
Points : 10
Points : 10
Par défaut [Upload] $_FILES est vide

Bonjour à tous,

Je suis en train réaliser un petit gestionnaire d'upload et l'upload ne fonctionne pas :

Le formulaire :
Code :
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
26
27
28
29
30
31
32
 
case "ajouter" :
echo "
<form action='".$_SERVER['PHP_SELF']."?action=creer_dossier' method='post'> <br/>
	<label>Nom du répertoire : </label><br/>
	<input type='text' name='nom_dossier' maxlength='50' /><br/>
	<input type='submit' value='Ok !' />";
break;
 
case "ajouter_fichier" :
echo "
<form action='".$_SERVER['PHP_SELF']."?action=upload' method='post'> <br/>
	<label>Répertoire :</label>
	<select name='rep'>";
 
	 //creation des options de la liste
	$rep = opendir("./");
	$i = 0;
	while ($dossier = readdir($rep)) {
		if($dossier != '..' && $dossier !='.' && $dossier !='') { 
			if(is_dir($dossier)){
				echo "<option value='$dossier'>$dossier</option>";
			}
		}
	}
	echo "
	</select>
	<br/>
	<label>Fichier : </label>
	<input type='file' name='fichier' />
	<input type='submit' value='Ok !' />";
break;
Et voici le code d'upload j'ai mis pas mal d'echo pour voir on sa bloque et mes variables provenant du tableau $_FILE sont vide alors qu'avec le POST je reçois bien le nom du fichier.

Code :
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
case "upload" :
$fichier = isset($_POST['fichier']) ? $_POST['fichier'] : '';
$rep = isset ($_POST['rep']) ? $_POST['rep'] : '';
 
echo "------ MES ENVOIS ------------------";
echo "<br/>je suis rentré dans mon cas d'upload";
echo "<br/> Nom di fichier reçu en POST :".$fichier;
echo "<br/> Dossier de destintation : ".$rep;
 
 
if(isset($_POST['fichier']) ) {
 
echo "<br/><br/>---------SCRIPT --------------";
 
	$cheminFichier = $rep."/";
	$tmp_file = $_FILES['fichier']['tmp_name'];
	$type_file = $_FILES['fichier']['type'];
	$name_file = $_FILES['fichier']['name'];
 
 
 
//  echo $_FILES['fichier']['error']; NE RENVOIE PAS D ERREUR
 
echo "<br/>Stockage du fichier dans : ".$cheminFichier;
echo "<br/> Nom temporaire : ".$tmp_file; // VIDE
echo "<br/> Type du fichier : ".$type_file; // VIDE
echo "<br/> Nom du fichier : ".$name_file; //VIDE
 
break; // simplement pour afficher les result (je sais, c'est bourrin) 
 
	if( !is_uploaded_file($tmp_file) ){
		exit("Le fichier est introuvable");
	}
 
	if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') ){ 
		exit("Le fichier n'est pas une image"); 
	}
 
 
	if( !move_uploaded_file($tmp_file, $cheminFichier . $name_file) ) {
		exit("Impossible de copier le fichier dans $content_dir");
	}
 
echo "Le fichier a bien été uploadé";
 
}
break;
Merci d'avance, j'ai vraiment besoin d'aide !!!

Nico
acidline est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 11h46   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Les données relatives à un fichier uploadé ne se situent en aucun cas dans $_POST (vos premiers tests pour $fichier) et il vous manque l'attribut enctype (enctype="multipart/form-data") à votre formulaire.

Je vous invite à consulter le tutoriel Upload de fichiers en PHP où vous trouverez toute la marche à suivre.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 12h03   #3
Candidat au titre de Membre du Club
 
Inscription : août 2007
Messages : 40
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 40
Points : 10
Points : 10
oups ! j'ai effectivement oublié le enctype

en ce qui concerne le $_POST c'est juste sympa de verifier que ce que j'envoie n'est pas vide... j'aime bien les longcourcci ....

Merci beaucoup pour votre aide, je vais m'empressé de lire les divers articles que vous me conseillez.

Nico
acidline est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 13h10   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par acidline
en ce qui concerne le $_POST c'est juste sympa de verifier que ce que j'envoie n'est pas vide... j'aime bien les longcourcci ...
Oui mais c'est bien $_FILES['fichier'] qu'il faut tester et non $_POST['fichier']. Nous en avons discuté à plusieurs reprises, vous avez notamment la possibilité d'utiliser les codes d'erreur à cette fin :
Code :
1
2
3
if ($_FILES['fichier']['error'] == UPLOAD_ERR_NO_FILE) {
   // Aucun fichier n'a été envoyé
}
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 14h31   #5
Candidat au titre de Membre du Club
 
Inscription : août 2007
Messages : 40
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 40
Points : 10
Points : 10
oui c'est vrai, pardon !!! je dis n'importe quoi...

merci pour l'info pour $_file['fichier']['error'] == UPLOAD_ERR_NO_FILE,
je ne connaissais pas du tout

Merci de votre aide !
acidline est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h31.


 
 
 
 
Partenaires

Hébergement Web