Uploader un fichier depuis un formulaire
Résolu/Fermé
jourdanne85
Messages postés
27
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
20 octobre 2009
-
15 janv. 2009 à 16:54
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 15 janv. 2009 à 19:12
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 15 janv. 2009 à 19:12
A voir également:
- Uploader un fichier depuis un formulaire
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Ouvrir un fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
13 réponses
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
15 janv. 2009 à 18:14
15 janv. 2009 à 18:14
c'est en effet le résultat que j'ai en ce moment, problème avec tes vérifications d'extensions^^
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
15 janv. 2009 à 16:56
15 janv. 2009 à 16:56
echo $_FILES['monfichier']['error'];
dans ton 2eme fichier
dans ton 2eme fichier
jourdanne85
Messages postés
27
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
20 octobre 2009
15 janv. 2009 à 16:59
15 janv. 2009 à 16:59
Excuse-moi, mais je ne comprends pas ta réponse.
Peux-tu plus préciser ?
Merci d'avance.
Peux-tu plus préciser ?
Merci d'avance.
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
15 janv. 2009 à 17:02
15 janv. 2009 à 17:02
il te demande de mettre cette ligne dans la page de traitement du formulaire pour voir l'erreur que ça retourne^^ et comprendre ainsi d'où peut provenir le bug
jourdanne85
Messages postés
27
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
20 octobre 2009
15 janv. 2009 à 17:14
15 janv. 2009 à 17:14
Je viens de faire l'essai en rajouter dans le fichier "cible_essai.php" :
echo $_FILES['monfichier']['error'];
Le navigateur indique maintenant la valeur 0.
Ce qui signifie que le fichier a bien été envoyé.
Le problème est que le fichier joint ne se trouve pas dans le dossier "images/" et que
la page n'affiche pas "L'envoi a bien été effectué".
Il doit y avoir une erreur dans le code plus bas ?
echo $_FILES['monfichier']['error'];
Le navigateur indique maintenant la valeur 0.
Ce qui signifie que le fichier a bien été envoyé.
Le problème est que le fichier joint ne se trouve pas dans le dossier "images/" et que
la page n'affiche pas "L'envoi a bien été effectué".
Il doit y avoir une erreur dans le code plus bas ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
15 janv. 2009 à 17:21
15 janv. 2009 à 17:21
retire la propriété basename là:
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'images/' .basename($_FILES['monfichier']['name']));
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'images/' .basename($_FILES['monfichier']['name']));
jourdanne85
Messages postés
27
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
20 octobre 2009
15 janv. 2009 à 17:26
15 janv. 2009 à 17:26
Je viens d'essayer :
Si j'enlève : .basename : le navigateur affiche :
Parse error: syntax error, unexpected '(' in C:\Program Files\wamp\www\tests\cible_essai.php on line 13
Si je n'enlève que basename : le navigateur affiche : 0 comme précédemment.
Celà ne doit pas venir de là.
Il y a peut-être des droits à ouvrir pour que PHP puisse mettre le fichier dans le dossier "images/" ?
Si j'enlève : .basename : le navigateur affiche :
Parse error: syntax error, unexpected '(' in C:\Program Files\wamp\www\tests\cible_essai.php on line 13
Si je n'enlève que basename : le navigateur affiche : 0 comme précédemment.
Celà ne doit pas venir de là.
Il y a peut-être des droits à ouvrir pour que PHP puisse mettre le fichier dans le dossier "images/" ?
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
15 janv. 2009 à 17:30
15 janv. 2009 à 17:30
le chmod doit se faire après l'upload pour les fichiers, mais il vaut mieux vérifier les droits de ton dossier^^
<?php
if(isset($_FILES['monfichier']['tmp']) AND $_FILES['monfichier']['error'] == 0)
{
//if ($_FILES['monfichier']['size'] <= 1000000) {
//$infosfichier = pathinfo($_FILES['monfichier']['name']);
//$extension_upload = $infosfichier['extension'];
//$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
//if (in_array($extensions_upload, $extensions_autorisees))
//{
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'images/' .basename($_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";
//}
//}
}
?>
voit avec ça, ça nous permettra de définir si ta commande move est correcte^^
<?php
if(isset($_FILES['monfichier']['tmp']) AND $_FILES['monfichier']['error'] == 0)
{
//if ($_FILES['monfichier']['size'] <= 1000000) {
//$infosfichier = pathinfo($_FILES['monfichier']['name']);
//$extension_upload = $infosfichier['extension'];
//$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
//if (in_array($extensions_upload, $extensions_autorisees))
//{
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'images/' .basename($_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";
//}
//}
}
?>
voit avec ça, ça nous permettra de définir si ta commande move est correcte^^
jourdanne85
Messages postés
27
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
20 octobre 2009
15 janv. 2009 à 17:37
15 janv. 2009 à 17:37
Excuse-moi, mais cela n'affiche absolument rien sur mon navigateur.
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
15 janv. 2009 à 17:41
15 janv. 2009 à 17:41
t'excuse pas^^
je vais faire des tests en local
je vais faire des tests en local
jourdanne85
Messages postés
27
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
20 octobre 2009
15 janv. 2009 à 17:46
15 janv. 2009 à 17:46
Je viens un test en rajoutant des "else" pour chaque conditions dans mon code.
Je trouve donc une erreur dès le départ à la ligne :
Vu que j'arrive à avoir une valeur 0 lorsque je fais un echo de $_FILES['monfichier']['error'], l'erreur ne peut
venir que de $_FILES['monfichier']['tmp']
Il y peut-être un manip à faire quand on veut le faire en local ?
Je trouve donc une erreur dès le départ à la ligne :
if(isset($_FILES['monfichier']['tmp']) AND $_FILES['monfichier']['error'] == 0)
Vu que j'arrive à avoir une valeur 0 lorsque je fais un echo de $_FILES['monfichier']['error'], l'erreur ne peut
venir que de $_FILES['monfichier']['tmp']
Il y peut-être un manip à faire quand on veut le faire en local ?
jourdanne85
Messages postés
27
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
20 octobre 2009
15 janv. 2009 à 18:00
15 janv. 2009 à 18:00
Je viens de faire un autre essai mais en mettant les fichiers en ligne.
L'erreur vient maintenant de l'extension.
Le fichier arrive donc à passer les 2 premières conditions mais pas la 3ème.
Il y a donc une manip à faire en local si l'on veut travailler sur son pc.
Par contre, si je vuex mettre mon fichier en ligne, j'ai toujours le problème de l'extension.
L'erreur vient maintenant de l'extension.
Le fichier arrive donc à passer les 2 premières conditions mais pas la 3ème.
Il y a donc une manip à faire en local si l'on veut travailler sur son pc.
Par contre, si je vuex mettre mon fichier en ligne, j'ai toujours le problème de l'extension.
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
15 janv. 2009 à 18:24
15 janv. 2009 à 18:24
if(isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0 )
{
if ( $_FILES['monfichier']['size'] <= 1000000 ) {
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$ext = $infosfichier['extension'];
$extAuth = array('jpg', 'jpeg', 'gif', 'png');
if ( in_array($ext, $extAuth) ) {
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'images/' .basename($_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";
}
}
}
ça fonctionne. C'était un problème de nom de variables, le s de la variable qui stocke l'extension du fichier, dans le if, est en trop. Je te recommande de les raccourcir pour ne pas te planter^^
{
if ( $_FILES['monfichier']['size'] <= 1000000 ) {
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$ext = $infosfichier['extension'];
$extAuth = array('jpg', 'jpeg', 'gif', 'png');
if ( in_array($ext, $extAuth) ) {
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'images/' .basename($_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";
}
}
}
ça fonctionne. C'était un problème de nom de variables, le s de la variable qui stocke l'extension du fichier, dans le if, est en trop. Je te recommande de les raccourcir pour ne pas te planter^^
jourdanne85
Messages postés
27
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
20 octobre 2009
15 janv. 2009 à 19:10
15 janv. 2009 à 19:10
Je viens de faire la rectif et tu avais raison.
Je te remercie, c'était en faut une erreur stupide de ma part et je t'ais fait perdre un peu de temps.
Tu as raison mes variables sont trop longues, il faut que je les racourcice.
Alors MERCI ENCORE !
Je te remercie, c'était en faut une erreur stupide de ma part et je t'ais fait perdre un peu de temps.
Tu as raison mes variables sont trop longues, il faut que je les racourcice.
Alors MERCI ENCORE !
Smoking bird
Messages postés
870
Date d'inscription
mardi 11 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2011
58
15 janv. 2009 à 19:12
15 janv. 2009 à 19:12
pas de soucis :D ça arrive plein de fois^^ bonne résolution pour le raccourcis ;) oublis pas de bien les rendre lisible aussi^^ le s étant la lettre qu'on remarque le moins dans ce genre de cas ;)