Php recuperer post input file
Résolu/Fermé
canardwifi
-
17 juil. 2009 à 10:57
jambondardennes Messages postés 481 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 6 septembre 2017 - 17 juil. 2009 à 14:43
jambondardennes Messages postés 481 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 6 septembre 2017 - 17 juil. 2009 à 14:43
16 réponses
Problème résolu !!! et ça venait de mon input le type et le name avait la même valeur "file" j'ai modifié ça et ça fonctionne.
Merci a tous et en particulier à jambondardennes pour ses efforts
Merci a tous et en particulier à jambondardennes pour ses efforts
Ozimandias
Messages postés
505
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
10 mars 2010
46
17 juil. 2009 à 11:31
17 juil. 2009 à 11:31
Pour récupérer des fichier uploadés, il faut utiliser $_FILES.
Petite explication ici:
http://www.commentcamarche.net/faq/sujet 889 php upload de fichiers
Petite explication ici:
http://www.commentcamarche.net/faq/sujet 889 php upload de fichiers
Merci pour la réponse j ai utilisé ce script mais il me bloque au nivau des extensions même les bonnes je ne comprends pas merci
le message d'erreur :
Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...
Le script :
$dossier = 'upload/';
$fichier = basename($_FILES['file']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['file']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['file']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['file']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>
le message d'erreur :
Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...
Le script :
$dossier = 'upload/';
$fichier = basename($_FILES['file']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['file']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['file']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['file']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>
jambondardennes
Messages postés
481
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2017
39
17 juil. 2009 à 12:02
17 juil. 2009 à 12:02
S'il te bloque c'est à cette ligne surement :
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
Vérifies que le fichier en question porte les extensions suivantes : .png, .gif, .jpg ou .jpeg
Si tu as besoin d'accepter d'autres extensions il te suffit de les rajouter dans la liste :
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.nouvelleextension');
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
Vérifies que le fichier en question porte les extensions suivantes : .png, .gif, .jpg ou .jpeg
Si tu as besoin d'accepter d'autres extensions il te suffit de les rajouter dans la liste :
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.nouvelleextension');
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ozimandias
Messages postés
505
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
10 mars 2010
46
17 juil. 2009 à 12:05
17 juil. 2009 à 12:05
Cette partie du code fonctionne très bien. As tu pensé à vérifier la casse de l'extension car si ton fichier s'apelle .JPG ça ne fonctionne pas...
le fichier que j essaye d ajouter est un .jpg j ai esaye avec d'autre extensions autorisés mais pareil...
jambondardennes
Messages postés
481
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2017
39
17 juil. 2009 à 12:10
17 juil. 2009 à 12:10
Enlèves les points dans la ligne des extensions acceptées voir
jambondardennes
Messages postés
481
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2017
39
17 juil. 2009 à 12:18
17 juil. 2009 à 12:18
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
Modifies cette ligne et fais :
if ($extension==".jpg")
Modifies cette ligne et fais :
if ($extension==".jpg")
Ozimandias
Messages postés
505
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
10 mars 2010
46
17 juil. 2009 à 12:19
17 juil. 2009 à 12:19
ça ça marche... c'est ailleurs que se trouve le problème
jambondardennes
Messages postés
481
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2017
39
17 juil. 2009 à 12:27
17 juil. 2009 à 12:27
fais un simple echo sur $extension voir ce qu'il affiche.
jambondardennes
Messages postés
481
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2017
39
17 juil. 2009 à 12:37
17 juil. 2009 à 12:37
l'echec de l'upload doit venir du fait que soit tu n'as pas de dossier upload pour qu'il mette le fichier dedans, soit que le dossier upload n'est pas à l'endroit que tu indiques.
quand je mets un echo devant extension voila le resultat
ArrayVous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...
merci de votre aide
ArrayVous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...
merci de votre aide
jambondardennes
Messages postés
481
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2017
39
17 juil. 2009 à 14:14
17 juil. 2009 à 14:14
Donc le problème vient du tableau vu que tu as array.
Au lieu de $extension = strrchr($_FILES['file']['name'], '.');
essaies $extension[] = strrchr($_FILES['file']['name'], '.');
Au lieu de $extension = strrchr($_FILES['file']['name'], '.');
essaies $extension[] = strrchr($_FILES['file']['name'], '.');
jambondardennes
Messages postés
481
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2017
39
17 juil. 2009 à 14:43
17 juil. 2009 à 14:43
oufffff ! HAHAHA comme quoi je suis pas le seul à devoir farfouiller mes codes ;)