Uploader un fichier en php
Résolu
mjimer
Messages postés
24
Date d'inscription
Statut
Membre
Dernière intervention
-
mjimer Messages postés 24 Date d'inscription Statut Membre Dernière intervention -
mjimer Messages postés 24 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Uploader un fichier en php
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
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'] ?
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'] ?
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 !!
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 !!
Ç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
Ajoute
var_dump($_FILES);au début de ton script
que fait ce point à la fin de :$content_dir = 'C:\wamp\www\ONDA\communication-QT1\. ?
essayes comme celà:
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'];; } ?>
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
perso je préfère tester en positif plutôt qu'en négatif
on a toujours de surprises
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
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
Et lorsque j'ai ajoutée la fonction :
var_dump($_FILES); ça m'affiche :
array(0) { }
dans la page upload1.php
var_dump($_FILES); ça m'affiche :
array(0) { }
dans la page upload1.php
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)
Tu n'aurais pas essayé avec un fichier trop gros par hasard ? essaye de charger un petit fichier court (<100k)
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>
<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>
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>
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>
<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>
Fichier : <input type="file" name="userfile" >
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
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 ?
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 ?
<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) { }
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) { }
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 ?
Quelle est la taille du fichier que tu essayes de télécharger ?
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 ??
ça reste toujours la contrainte de taille même si j'ai enlevée le input ??
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.
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.
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 ??
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 ??