Upload d'images

Résolu/Fermé
Pritax Messages postés 333 Date d'inscription mardi 12 juin 2012 Statut Membre Dernière intervention 26 février 2015 - 18 avril 2013 à 14:29
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014 - 26 avril 2013 à 11:47
bonjour, j'ai voulu up une image, saulement une seul images s'upload et les autres non ....
Puis je n'arrive pas a les stocker dans ma base de données (stocker leur chemin relatif).
mon PHP :

<?php
$dossier = 'upload/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['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['avatar']['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;
}
?>

mon HTML :

<form method="POST" action="enregistre.php" enctype="multipart/form-data">
<!-- On limite le fichier à 100Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
Fichier : <input type="file" name="avatar">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>

5 réponses

jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
18 avril 2013 à 15:22
Salut,

Qu'entends tu par : "Seulement une image s'upload et pas les autres" ?
Car la ton input type="file" ne contient qu'une seule image donc logique. Et tu n'as qu'un seul input. Donc une image en tout.

Sinon, pour stocker le chemin dans ton BDD, il faut faire un insert !
0
Pritax Messages postés 333 Date d'inscription mardi 12 juin 2012 Statut Membre Dernière intervention 26 février 2015 19
18 avril 2013 à 19:03
Nn , je peux uploader une image , exemple j'upload image A , tres bien je la vois dans upload/ , j'upload maintenant image B , ca marche pas , image C idem echec , et quand je reviens a l'image A que je la supprime ou non , ca marche . Quant au insert , je peut pas inserer l'image . Vu que c'est inspire d'un tuto je comprend pas tout sur ou est stocker mon chemin a la fin ...
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
18 avril 2013 à 21:45
T'as un message d'erreur ?

Pour stocké ton chemin en BDD, un simple insert into fichier set nom image = "image A", chemin = $_FILE['avatar'][realpath] (pas sur pour le real path !)
0
Pritax Messages postés 333 Date d'inscription mardi 12 juin 2012 Statut Membre Dernière intervention 26 février 2015 19
18 avril 2013 à 23:45
Nn mais en faite , ce que je souhaitais faire , c'est lors de l'inscription d'une personne , il met une photo et elle est uploader dans un dossier et sur la bdd pour qu'apres je puisse lui afficher . Les deux pb que j 'ai c'est

1) comment uploader un photo ?
2) comment stocker le chemin relatif de la photo dans la bdd
3) la restitue apres ( mais ca je sais faire )
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
Modifié par jeremy.s le 19/04/2013 à 14:42
Ton code la haut permet d'uploader un fichier. Donc ton 1) est fait ! (Mis à part ton problème)
Pour le 2), le chemin que tu défini es ici
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier))
, ca veut dire que tu vas mettre le fichier à $dossier/$fichier, donc dans ton cas : upload/nomdufichier.png
Alors pour ce que tu veux faire, tu t'y prend un peu mal. Je m'explique :
Tu veux attribué une photo à un utilisateur, mais comment gère tu ta BDD ? As tu un champ pour stocker le chemin de l'image dans ta table utilisateur ? Ou as tu une table image ?
Dans ton cas, tu prends le nom de l'image que l'utilisateur avait sur son ordi. Je te conseil de la renommé soit avec le nom de l'utilisateur, soit son id, c'est beaucoup plus simple !
0
Pritax Messages postés 333 Date d'inscription mardi 12 juin 2012 Statut Membre Dernière intervention 26 février 2015 19
19 avril 2013 à 17:49
Merci de votre aide , donc oui je veux attribue une photo a un user dans ma table compte ou un champ "photo" est dispo pour accueillir un type varchar
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
19 avril 2013 à 17:59
Donc dans on champ photo de ta table compte, tu vas faire un :
UPDATE compte SET photo = 'cheminVersLaPhoto.jpg' WHERE id_compte = id_compte
0
Pritax Messages postés 333 Date d'inscription mardi 12 juin 2012 Statut Membre Dernière intervention 26 février 2015 19
21 avril 2013 à 11:37
Je comprend pas , j'ai fait cette action mais ca marche pas . Sur le code que j'ai mis au debut , faut que je rajoute ca sur quelle parti ?
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
21 avril 2013 à 16:04
A la fin. T'as bien une base de données ? Tu sais t'en servir ?
0
Pritax Messages postés 333 Date d'inscription mardi 12 juin 2012 Statut Membre Dernière intervention 26 février 2015 19
24 avril 2013 à 01:02
Ben j'ai creer les tables ac un fichier texte , et je voudrais que quand mon formulaire d'inscription soit remplit , la photo s'upload et le chemin se met dans la bdd dans la table compte.photo
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
24 avril 2013 à 15:26
Tu as déjà trité les autres infos de connexion ? login, mdp, etc.
Si oui, alors tu les a inséré dans ta BDD non ?
Bah c'est pareil pour le chemin de l'image :)
0
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014 13
26 avril 2013 à 10:23
Je ne sais pas si le problème d'upload a été finalement résolu, mais si ce n'est pas le cas : est-ce que ça ne serait pas une histoire de poids ?
Ton image A est-ce elle plus légère que les autres ?
0

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

Posez votre question
Pritax Messages postés 333 Date d'inscription mardi 12 juin 2012 Statut Membre Dernière intervention 26 février 2015 19
26 avril 2013 à 11:29
Merci de vos reponses , nn elle est plus legere mais c'est la seule en JPG c'est peut etre pour ca
0
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014 13
26 avril 2013 à 11:47
Peux-tu nous donner les noms des trois fichiers que tu essaies d'uploader ?

Dans ton code il faudrait que tu passes les extensions en minuscules avant de les tester. Comme c'est fait actuellement une image en .JPG ne passera pas mais une image en .jpg oui. Ça pourrait être ton problème.

Il te suffit de faire :
$extension = strtolower(strrchr($_FILES['avatar']['name'], '.')); 
0