Upload d'images

Résolu/Fermé
Pritax
Messages postés
328
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
80
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
328
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
80
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
328
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
80
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
328
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
80
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
328
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
80
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
328
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
80
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
14
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
328
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
14
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