Uploader un fichier en php

Résolu/Fermé
mjimer Messages postés 24 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 17 juin 2012 - 30 mai 2012 à 22:29
mjimer Messages postés 24 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 17 juin 2012 - 9 juin 2012 à 09:57
Bonjour, a vous tous
Je suis actuellement entrain de développer un site en PHP à l'aide de la plateforme wamp server .

Cela fait un moment que j'essaye de uploader un fichier texte (.doc, .odt, .xls, .ppt, ...) et l'insérer dans mon serveur mais en vain .

Quelqu'un aurait une idée ?
voici mon code :
HTML :
<form enctype="multipart/form-data" action="test2.php" method="post">

<!-- MAX_FILE_SIZE doit précéder le champs input de type file -->

<input type="hidden" name="MAX_FILE_SIZE" value="100000" />

<!-- Le nom de l'élément input détermine le nom dans le tableau $_FILES -->

Envoyez ce fichier : <input name="fichier" type="file" />

<input type="submit" value="Envoyer le fichier" />

</form>
pour le script en php:
<?php
$id_connex=mysql_connect("localhost","root","") or die("Connexion impossible");
mysql_query("use ONDA");
$content_dir = 'C:\wamp\www\ONDA\communication-QT1\.';

$tmp_file = $_FILES['fichier']['tmp_name'];
$test=$_FILES['fichier']['name'];

if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}


$name_file = $_FILES['fichier']['name'];

if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}

echo "Le fichier a bien été uploadé";

echo "<pre>";
print_r($_FILES);
echo "</pre>"
?>
le problème c'est que j'ai toujours le else seulement qui s'execute : le fichier est introuvable

veuillez m'aidez s'il vous plait si vous avez une idée sur l'erreur que j'avais commis

A voir également:

23 réponses

Bonjour

Tu as limité la taille du téléchargement à 100k, es-tu bien sûr de ne pas essayer de fichier plus gros ?
As-tu essayé d'afficher le code d'erreur $_FILES['fichier']['error'] ?
0
mjimer Messages postés 24 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 17 juin 2012
Modifié par mjimer le 31/05/2012 à 19:46
Bonsoir ,
toujours même problème j'ai changée mon code en cela :
<?php
$id_connex=mysql_connect("localhost","root","") or die("Connexion impossible");
mysql_query("use ONDA");
$content_dir = 'C:\wamp\www\ONDA\communication-QT1\.';

$tmp_file = $_FILES['fichier']['tmp_name'];
$test=$_FILES['fichier']['name'];


if( !is_uploaded_file($tmp_file) )
{
echo ($_FILES['fichier']['error'] );
exit ("Le fichier est introuvable" );

}


$name_file = $_FILES['fichier']['name'];

if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}

echo "Le fichier a bien été uploadé";

echo "<pre>";
print_r($_FILES);
echo "</pre>"
?>
et Pour l'html j'ai enlevée le value= mais sans résultat
il ne m'affiche pas le code d'erreur même si j'ai ajoutée l'echo !!
0
Utilisateur anonyme
31 mai 2012 à 20:52
Ça affiche "Le fichier est introuvable" sans afficher de code d'erreur ? C'est peut-être simplement que $_FILES['fichier'] n'est pas défini.
Ajoute
var_dump($_FILES);  
au début de ton script
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 juin 2012 à 09:42
que fait ce point à la fin de :$content_dir = 'C:\wamp\www\ONDA\communication-QT1\. ?

essayes comme celà:
<?php
$id_connex=mysql_connect("localhost","root","") or die("Connexion impossible");
mysql_query("use ONDA");
$content_dir = 'C:\wamp\www\ONDA\communication-QT1\.';

$tmp_file = $_FILES['fichier']['tmp_name'];
$name_file = $_FILES['fichier']['name'];

if( is_uploaded_file($tmp_file) )
{
	if( move_uploaded_file($tmp_file, $content_dir . $name_file) ){
		echo "Le fichier <b>$name_file</b> a bien été uploadé"
	}else{
		echo "Impossible de copier le fichier <b>$name_file</b> dans <b>$content_dir</b>";
		
		
	}
}else{
	echo $_FILES['fichier']['error'];;
}
?> 
0
Utilisateur anonyme
1 juin 2012 à 13:23
C'est vrai que le point à la fin de $content_dir est sûrement une erreur, mais elle ne devrait provooquer un problème qu'à partir du move_uploaded_file, pas dès le if( !is_uploaded_file($tmp_file) ).
Je n'ai pas bien compris ce qui a changé entre le script de njimer et le tien, à part un peu de mise en forme, les mêmes fonctions sont appelées dans le même ordre. Tu as même laissé le point à la fin de $content_dir.
0

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

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 1/06/2012 à 14:04
je ne me suis rendu compte de la présence du point et rajouté la remarque qu'après avoir refait et copie /collé le code

perso je préfère tester en positif plutôt qu'en négatif
on a toujours de surprises
0
mjimer Messages postés 24 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 17 juin 2012
2 juin 2012 à 12:18
Bonjour
si j'enlève le point qui se trouve a la fin du chemin j'ai le message d'erreur qui s'affiche :

Parse error: syntax error, unexpected T_STRING in C:\wamp\www\ONDA\upload1.php on line 6
0
Utilisateur anonyme
2 juin 2012 à 12:40
Je ne sais pas où tu as retiré un point, mais sans doute pas là où Alain_42 te l'avait dit, car sa remarque était justifiée et retirer le point qu'il t'a indiqué ne peut pas avoir provoqué cette erreur. On pourra en reparler plus tard.
0
mjimer Messages postés 24 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 17 juin 2012
2 juin 2012 à 12:21
Et lorsque j'ai ajoutée la fonction :
var_dump($_FILES); ça m'affiche :
array(0) { }
dans la page upload1.php
0
Utilisateur anonyme
2 juin 2012 à 12:43
si $_FILES est vide, c'est que tu n'as rien téléchargé du tout... Ça n'est même pas arrivé jusqu'à ton script, ton traitement n'y peut rien.
Tu n'aurais pas essayé avec un fichier trop gros par hasard ? essaye de charger un petit fichier court (<100k)
0
Utilisateur anonyme
2 juin 2012 à 13:02
Ton formulaire dit action="test2.php" et toi tu nous parles de upload1.php...
Ça n'est pas très cohérent. Tu as modifié ton formulaire ?
0
mjimer Messages postés 24 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 17 juin 2012
2 juin 2012 à 13:44
oui j'avais modifier le formulaire ou j'avais enlever le value (représentant la taille du fichier)
0
Utilisateur anonyme
2 juin 2012 à 13:50
j'avais modifier le formulaire
Peux-tu montrer ton formuliare modifié ?
0
mjimer Messages postés 24 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 17 juin 2012
2 juin 2012 à 13:53
d'accord le voici :

<form method="POST" action="upload1.php" enctype="multipart/form-data">
<!-- On limite le fichier à 100Ko -->
<input type="hidden" name="MAX_FILE_SIZE">
Fichier : <input type="file" name="userfile" value="">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
0
mjimer Messages postés 24 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 17 juin 2012
2 juin 2012 à 13:54
plutot :
d'accord le voici :

<form method="POST" action="upload1.php" enctype="multipart/form-data">
<!-- On limite le fichier à 100Ko -->
<input type="hidden" name="MAX_FILE_SIZE">
Fichier : <input type="file" name="userfile" >
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
2 juin 2012 à 14:08
<input type="hidden" name="MAX_FILE_SIZE">

value= ???????
0
mjimer Messages postés 24 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 17 juin 2012
2 juin 2012 à 14:11
non j'ai enlevée le value pour ne pas avoir la contrainte de la taille
0
mjimer Messages postés 24 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 17 juin 2012
2 juin 2012 à 14:12
<form method="POST" action="upload1.php" enctype="multipart/form-data">
Fichier : <input type="file" name="userfile" >
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
0
Utilisateur anonyme
2 juin 2012 à 14:14
Pour être plus explicite : enlève complètement la ligne <input type="hidden" name="MAX_FILE_SIZE">
De plus, je vois que tu as changé le nom du fichier pour 'userfile' au lieu de 'fichier'. Quel intérêt ? Mis à part de t'obliger à modifier partout ton script qui reçoit le fichier ?
0
mjimer Messages postés 24 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 17 juin 2012
2 juin 2012 à 14:24
<form method="POST" action="upload1.php" enctype="multipart/form-data">
Fichier : <input type="file" name="fichier" >
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
même si le meme message s'affiche :
array(0) { }
0
Utilisateur anonyme
2 juin 2012 à 14:53
J'ai copié-collé ton script et la seule manière que j'ai trouvée pour reproduire ton défaut, c'est d'envoyer un fichier trop gros. Je t'ai dit à plusieurs reprises d'essayer avec un fichier pas trop gros.
Quelle est la taille du fichier que tu essayes de télécharger ?
0
mjimer Messages postés 24 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 17 juin 2012
2 juin 2012 à 15:09
la taille de mon fichier est de 78 ko
ça reste toujours la contrainte de taille même si j'ai enlevée le input ??
0
Utilisateur anonyme
2 juin 2012 à 15:17
Normalement, 78ko ça passe. Il y a bien une contrainte dans la configuration de php, mais elle n'est certainement pas si bas que ça.
Peux-tu mettre phpinfo(); au début de ton script pour voir ta version de php et son paramétrage ? il y en a un paquet, fais une recherche sur le mot upload.
0
mjimer Messages postés 24 Date d'inscription mercredi 30 mai 2012 Statut Membre Dernière intervention 17 juin 2012
2 juin 2012 à 15:39
justement puisque tous les fonctions utilisées ils sont écrites par une couleur standard normalement si ils sont connus par php ils seront écrites en bleu .
pour la version de mon php c'est PHP Version 5.2.1 j'ai pas compris qu'est ce que vous voulez dire par il y en a un paquet , fais une recherche sur le mot upload ??
0