Upload d'images
Résolu
Pritax
Messages postés
333
Date d'inscription
Statut
Membre
Dernière intervention
-
Azraka Messages postés 252 Date d'inscription Statut Membre Dernière intervention -
Azraka Messages postés 252 Date d'inscription Statut Membre Dernière intervention -
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>
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>
A voir également:
- Upload d'images
- Youtube upload - Télécharger - Diffusion
- Des images - Guide
- Images enregistrées - Forum Gravure
- Extraire images pdf - Guide
- Les images enregistrées n'apparaissent plus - Forum Bureautique
5 réponses
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 !
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 !
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 ...
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 )
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 )
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
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 !
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 !
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
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 ?
Ton image A est-ce elle plus légère que les autres ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci de vos reponses , nn elle est plus legere mais c'est la seule en JPG c'est peut etre pour ca
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 :
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'], '.'));