Renommer ces images avant l insertion en base de donnée
Résolu/Fermé
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
-
4 juin 2021 à 15:21
jordane45 Messages postés 38270 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 novembre 2024 - 5 juin 2021 à 00:27
jordane45 Messages postés 38270 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 novembre 2024 - 5 juin 2021 à 00:27
A voir également:
- Renommer ces images avant l insertion en base de donnée
- Renommer plusieurs fichiers en même temps - Guide
- Dans la présentation à télécharger, sarah avait encadré directement le titre de certaines diapositives avant d’automatiser cette mise en forme pour tout le document. sur quelles diapositives avait-elle encadré directement le titre ? ✓ - Forum Bureautique
- Formules excel de base - Guide
- Insertion liste déroulante excel - Guide
- Comment renommer quelqu'un sur instagram - Forum Instagram
10 réponses
jordane45
Messages postés
38270
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 novembre 2024
4 695
4 juin 2021 à 15:25
4 juin 2021 à 15:25
Bonjour,
Tu peux préfixer le nom des images par l'ID de ton utilisateur et utiliser, en plus, la fonction UNIQID pour générer une string aléatoire.
Par exemple, Ton fichier serait de la forme 1-78fsdf465.png
Tu peux préfixer le nom des images par l'ID de ton utilisateur et utiliser, en plus, la fonction UNIQID pour générer une string aléatoire.
Par exemple, Ton fichier serait de la forme 1-78fsdf465.png
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
4 juin 2021 à 15:36
4 juin 2021 à 15:36
bonjour jordane
merci pour la réponse aussi rapide
c est super
oui cela n a aucune importance du moment que cela est une chose simple a mettre en place et qu il soit impossible d avoir deux fois la même dénomination pour une image
l idéal comme tu connais mon code serait par exemple d avoir par exemple son pseudo et l id de la journée de pêche et bien sur le string aléatoire
juste pour m y retrouver dans les images
merci pour la réponse aussi rapide
c est super
oui cela n a aucune importance du moment que cela est une chose simple a mettre en place et qu il soit impossible d avoir deux fois la même dénomination pour une image
l idéal comme tu connais mon code serait par exemple d avoir par exemple son pseudo et l id de la journée de pêche et bien sur le string aléatoire
juste pour m y retrouver dans les images
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
4 juin 2021 à 17:06
4 juin 2021 à 17:06
voila je viens d essayer avec ce code
amis j ai un soucis avec l extension
comment je pourrais ajouter les extensions
j ai ajouter la ligne 41
amis j ai un soucis avec l extension
comment je pourrais ajouter les extensions
j ai ajouter la ligne 41
<?php // Démarrage SESSION session_start(); error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //Connexion à la bdd require_once 'base.php'; // Variables/constantes... $allowed = array( "jpg" => "image/jpg", "JPG" => "image/JPG", "jpeg" => "image/jpeg", "JPEG" => "image/JPEG", "gif" => "image/gif", "png" => "image/png", "PNG" => "image/PNG" ); $res = array();// variable qui contiendra les infos à retourner au script JS // récupération PROPRE des variables de type "array" AVANT de les utiliser (j'ai l'impression de radoter vu le nombre de fois que je t'ai déjà donné ce genre de code !!!! ) $getpseudo = !empty($_COOKIE['pseudo']) ? $_COOKIE['pseudo'] : NULL; $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo']: $getpseudo; $id = !empty($_POST['id']) ? $_POST['id']: NULL; $photos = !empty($_FILES["photo"]) ? $_FILES["photo"] : NULL; $contenu = !empty($_POST["contenu"]) ? $_POST["contenu"] : ""; // Vérifier si le formulaire a été soumis if ($_SERVER["REQUEST_METHOD"] == "POST") { // Vérifie si le fichier a été uploadé sans erreur. if ($photos ){ if( $photos["error"] != 0 ){ $err = 'Erreur : ' . $photo['error']; }else{ $filename = $photos["name"]; $filetype = $photos["type"]; $filesize = $photos["size"]; $filename = uniqid("img_",true) ; // Vérifie l'extension du fichier $ext = pathinfo($filename, PATHINFO_EXTENSION); if (!array_key_exists($ext, $allowed)) { $err = 'Erreur : Veuillez sélectionner un format de fichier valide.</br> <a href="javascript:history.back()">Pour recommencer</a>'; } // Vérifie la taille du fichier - 5Mo maximum $maxsize = 5 * 1024 * 1024; if ($filesize > $maxsize){ $err = 'Error: La taille du fichier est supérieure à la limite autorisée.</br> <a href="javascript:history.back()">Pour recommencer</a>'; }else{ // Vérifie le type MIME du fichier if (in_array($filetype, $allowed)) { // Vérifie si le fichier existe avant de le télécharger. if (file_exists("uploads/" . $photos["name"])) { $err = $photos["name"] . ' existe déjà.</br> <a href="javascript:history.back()">Pour recommencer</a>'; } else { if(! move_uploaded_file($photos["tmp_name"], "uploads/" . $photos["name"])){ $err = "Erreur lors de l'upload du fichier"; }else{ $res['message'] = '<style="font-size:22px; margin-left:20%; margin-top:90px;text-align: center;">Votre fichier a été téléchargé avec succès.>'; //préparation de la requête et des variables $sql = 'INSERT INTO galerie_images (pseudo, id_img, nom_img, nom_min, contenu ) VALUES (:pseudo, :id_img, :nom_img, :nom_min, :contenu)'; $datas = array( ':pseudo' => $pseudo, ':id_img' => $id, ':nom_img' => $filename, ':nom_min' => $filename, ':contenu' => $contenu ); //exécution de la requêete préparée try{ $req = $bdd->prepare($sql); $req->execute($datas); }catch(Exception $e){ $err = " Erreur dans la requête : " . $e->getMessage(); } } } } else { $err = 'Error: Il y a eu un problème de téléchargement de votre fichier. Veuillez réessayer.</br> <a href="javascript:history.back()">Pour recommencer</a>'; } } } } else { $debug = ['POST'=>$_POST,'FILE'=>$_FILES]; $err = "Error: " . $photos["error"] . " --- " . print_r($debug,true); } } else { $err = "Méthode invalide"; } $res['error'] = $err; // On renvoi la réponse au format JSON echo json_encode($res); exit;
jordane45
Messages postés
38270
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 novembre 2024
4 695
Modifié le 4 juin 2021 à 21:32
Modifié le 4 juin 2021 à 21:32
$filename . "." . $ext
Attention à bien le faire pour la sauvegarde en bdd ET lors du move_uploaded_file
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
4 juin 2021 à 19:35
4 juin 2021 à 19:35
merci jordane
es ce que je ne devrais pas réaliser cela lors de l upload
j ai trouve ce code sur cette page
https://stackoverflow.com/questions/8810656/change-file-name-to-uniqid-in-php/8810759
es ce que je ne devrais pas réaliser cela lors de l upload
j ai trouve ce code sur cette page
https://stackoverflow.com/questions/8810656/change-file-name-to-uniqid-in-php/8810759
$fileInfo = pathinfo($_photos["file"]["name"]); move_uploaded_file($_photos["file"]["tmp_name"], "uploads/" . uniqid() . '.' . $fileInfo['extension']);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
4 juin 2021 à 20:23
4 juin 2021 à 20:23
voila je viens de refaire des essais
donc a présent j ai bien l image dans la base de donnée avec un non généré
dans le dossier uploads j ai aussi l image mais malheureusement c est le nom original du fichier
donc il faut pouvoir modifier le nom aussi dans l upload
et de ce cote je sèche
voici le code que j ai ajoute pour l instant pour avoir le résultat explique
donc a présent j ai bien l image dans la base de donnée avec un non généré
dans le dossier uploads j ai aussi l image mais malheureusement c est le nom original du fichier
donc il faut pouvoir modifier le nom aussi dans l upload
et de ce cote je sèche
voici le code que j ai ajoute pour l instant pour avoir le résultat explique
$ext = pathinfo($filename, PATHINFO_EXTENSION); $filename = uniqid("img_",true).$ext ;
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
4 juin 2021 à 20:28
4 juin 2021 à 20:28
voila avec ce code j ai les noms des images qui ont été mortifiées
par contre c est pas bon avec l extension
le nom de mon image est ainsi
img_60ba6e9dba9472.30017962JPG
par contre c est pas bon avec l extension
le nom de mon image est ainsi
img_60ba6e9dba9472.30017962JPG
<?php // Démarrage SESSION session_start(); error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //Connexion à la bdd require_once 'base.php'; // Variables/constantes... $allowed = array( "jpg" => "image/jpg", "JPG" => "image/JPG", "jpeg" => "image/jpeg", "JPEG" => "image/JPEG", "gif" => "image/gif", "png" => "image/png", "PNG" => "image/PNG" ); $res = array();// variable qui contiendra les infos à retourner au script JS // récupération PROPRE des variables de type "array" AVANT de les utiliser (j'ai l'impression de radoter vu le nombre de fois que je t'ai déjà donné ce genre de code !!!! ) $getpseudo = !empty($_COOKIE['pseudo']) ? $_COOKIE['pseudo'] : NULL; $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo']: $getpseudo; $id = !empty($_POST['id']) ? $_POST['id']: NULL; $photos = !empty($_FILES["photo"]) ? $_FILES["photo"] : NULL; $contenu = !empty($_POST["contenu"]) ? $_POST["contenu"] : ""; // Vérifier si le formulaire a été soumis if ($_SERVER["REQUEST_METHOD"] == "POST") { // Vérifie si le fichier a été uploadé sans erreur. if ($photos ){ if( $photos["error"] != 0 ){ $err = 'Erreur : ' . $photo['error']; }else{ $filename = $photos["name"]; $filetype = $photos["type"]; $filesize = $photos["size"]; $ext = pathinfo($filename, PATHINFO_EXTENSION); $filename = uniqid("img_",true).$ext ; // Vérifie l'extension du fichier $ext = pathinfo($filename, PATHINFO_EXTENSION); if (!array_key_exists($ext, $allowed)) { $err = 'Erreur : Veuillez sélectionner un format de fichier valide.</br> <a href="javascript:history.back()">Pour recommencer</a>'; } // Vérifie la taille du fichier - 5Mo maximum $maxsize = 5 * 1024 * 1024; if ($filesize > $maxsize){ $err = 'Error: La taille du fichier est supérieure à la limite autorisée.</br> <a href="javascript:history.back()">Pour recommencer</a>'; }else{ // Vérifie le type MIME du fichier if (in_array($filetype, $allowed)) { // Vérifie si le fichier existe avant de le télécharger. $photos["name"]= $filename; if (file_exists("uploads/" . $photos["name"])) { $err = $photos["name"] . ' existe déjà.</br> <a href="javascript:history.back()">Pour recommencer</a>'; } else { if(! move_uploaded_file($photos["tmp_name"], "uploads/" . $photos["name"])){ $err = "Erreur lors de l'upload du fichier"; }else{ $res['message'] = '<style="font-size:22px; margin-left:20%; margin-top:90px;text-align: center;">Votre fichier a été téléchargé avec succès.>'; //préparation de la requête et des variables $sql = 'INSERT INTO galerie_images (pseudo, id_img, nom_img, nom_min, contenu ) VALUES (:pseudo, :id_img, :nom_img, :nom_min, :contenu)'; $datas = array( ':pseudo' => $pseudo, ':id_img' => $id, ':nom_img' => $filename, ':nom_min' => $filename, ':contenu' => $contenu ); //exécution de la requêete préparée try{ $req = $bdd->prepare($sql); $req->execute($datas); }catch(Exception $e){ $err = " Erreur dans la requête : " . $e->getMessage(); } } } } else { $err = 'Error: Il y a eu un problème de téléchargement de votre fichier. Veuillez réessayer.</br> <a href="javascript:history.back()">Pour recommencer</a>'; } } } } else { $debug = ['POST'=>$_POST,'FILE'=>$_FILES]; $err = "Error: " . $photos["error"] . " --- " . print_r($debug,true); } } else { $err = "Méthode invalide"; } $res['error'] = $err; // On renvoi la réponse au format JSON echo json_encode($res); exit;
jordane45
Messages postés
38270
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 novembre 2024
4 695
4 juin 2021 à 21:57
4 juin 2021 à 21:57
jordane45
Messages postés
38270
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 novembre 2024
4 695
>
jordane45
Messages postés
38270
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 novembre 2024
4 juin 2021 à 21:59
4 juin 2021 à 21:59
en complément, tu devrais forcer en minuscule la variable filename
$filename = strtolower ( uniqid("img_",true) . "." . $ext ) ;
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
4 juin 2021 à 23:36
4 juin 2021 à 23:36
bonsoir Jordane
un grand merci pour ton aide
c est vraiment la dernière difficultés pour mon site
enfin je pense
voila j ai applique les corrections
mais cela ne fonctionne pas
pourtant j ai suivi pas a pas le code ...
je te joins une copie du code modifie
et une copie d écran de la réponse
un grand merci pour ton aide
c est vraiment la dernière difficultés pour mon site
enfin je pense
voila j ai applique les corrections
mais cela ne fonctionne pas
pourtant j ai suivi pas a pas le code ...
je te joins une copie du code modifie
et une copie d écran de la réponse
<?php // Démarrage SESSION session_start(); error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //Connexion à la bdd require_once 'base.php'; // Variables/constantes... $allowed = array( "jpg" => "image/jpg", "JPG" => "image/JPG", "jpeg" => "image/jpeg", "JPEG" => "image/JPEG", "gif" => "image/gif", "png" => "image/png", "PNG" => "image/PNG" ); $res = array();// variable qui contiendra les infos à retourner au script JS // récupération PROPRE des variables de type "array" AVANT de les utiliser (j'ai l'impression de radoter vu le nombre de fois que je t'ai déjà donné ce genre de code !!!! ) $getpseudo = !empty($_COOKIE['pseudo']) ? $_COOKIE['pseudo'] : NULL; $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo']: $getpseudo; $id = !empty($_POST['id']) ? $_POST['id']: NULL; $photos = !empty($_FILES["photo"]) ? $_FILES["photo"] : NULL; $contenu = !empty($_POST["contenu"]) ? $_POST["contenu"] : ""; // Vérifier si le formulaire a été soumis if ($_SERVER["REQUEST_METHOD"] == "POST") { // Vérifie si le fichier a été uploadé sans erreur. if ($photos ){ if( $photos["error"] != 0 ){ $err = 'Erreur : ' . $photo['error']; }else{ $filename = $photos["name"]; $filetype = $photos["type"]; $filesize = $photos["size"]; $ext = pathinfo($filename, PATHINFO_EXTENSION); $filename = strtolower ( uniqid("img_",true) . "." . $ext ) ; // Vérifie l'extension du fichier if (!array_key_exists($ext, $allowed)) { $err = 'Erreur : Veuillez sélectionner un format de fichier valide.</br> <a href="javascript:history.back()">Pour recommencer</a>'; } // Vérifie la taille du fichier - 5Mo maximum $maxsize = 5 * 1024 * 1024; if ($filesize > $maxsize){ $err = 'Error: La taille du fichier est supérieure à la limite autorisée.</br> <a href="javascript:history.back()">Pour recommencer</a>'; }else{ // Vérifie le type MIME du fichier if (in_array($filetype, $allowed)) { // Vérifie si le fichier existe avant de le télécharger. if (file_exists("uploads/" . $filename)) { $err = $filename . ' existe déjà.</br> <a href="javascript:history.back()">Pour recommencer</a>'; } else { if(! move_uploaded_file($photos["tmp_name"], "uploads/" . $filename)){ $err = "Erreur lors de l'upload du fichier"; }else{ $res['message'] = '<style="font-size:22px; margin-left:20%; margin-top:90px;text-align: center;">Votre fichier a été téléchargé avec succès.>'; //préparation de la requête et des variables $sql = 'INSERT INTO galerie_images (pseudo, id_img, nom_img, nom_min, contenu ) VALUES (:pseudo, :id_img, :nom_img, :nom_min, :contenu)'; $datas = array( ':pseudo' => $pseudo, ':id_img' => $id, ':nom_img' => $filename, ':nom_min' => $filename, ':contenu' => $contenu ); //exécution de la requêete préparée try{ $req = $bdd->prepare($sql); $req->execute($datas); }catch(Exception $e){ $err = " Erreur dans la requête : " . $e->getMessage(); } } } } else { $err = 'Error: Il y a eu un problème de téléchargement de votre fichier. Veuillez réessayer.</br> <a href="javascript:history.back()">Pour recommencer</a>'; } } } } else { $debug = ['POST'=>$_POST,'FILE'=>$_FILES]; $err = "Error: " . $photos["error"] . " --- " . print_r($debug,true); } } else { $err = "Méthode invalide"; } $res['error'] = $err; // On renvoi la réponse au format JSON echo json_encode($res); exit;
jordane45
Messages postés
38270
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 novembre 2024
4 695
4 juin 2021 à 23:56
4 juin 2021 à 23:56
ça ne marche pas... c'est à dire ?
par ce que la réponse ajax te dit bien que c'est sauvegardé ...
par ce que la réponse ajax te dit bien que c'est sauvegardé ...
jordane45
Messages postés
38270
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 novembre 2024
4 695
>
jordane45
Messages postés
38270
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 novembre 2024
5 juin 2021 à 00:03
5 juin 2021 à 00:03
Ah oui, l'erreur javascript à la fin...
étrange..
Tu peux, dans la fenêtre de réponse, tout à droit, cliquer sur le bouton "Brut" et nous montrer ce que ça contient ?
étrange..
Tu peux, dans la fenêtre de réponse, tout à droit, cliquer sur le bouton "Brut" et nous montrer ce que ça contient ?
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
5 juin 2021 à 00:04
5 juin 2021 à 00:04
jordane45
Messages postés
38270
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 novembre 2024
4 695
5 juin 2021 à 00:05
5 juin 2021 à 00:05
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
5 juin 2021 à 00:14
5 juin 2021 à 00:14
jordane45
Messages postés
38270
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 novembre 2024
4 695
5 juin 2021 à 00:16
5 juin 2021 à 00:16
Vu que tu peux voir le message d'erreur.... Je te laisse chercher ( vu que la dernière fois tu m'as indiqué que je t'avais répondu trop vite )
ou tu veux la réponse maintenant ?
ou tu veux la réponse maintenant ?
jordane45
Messages postés
38270
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 novembre 2024
4 695
>
jordane45
Messages postés
38270
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 novembre 2024
Modifié le 5 juin 2021 à 00:23
Modifié le 5 juin 2021 à 00:23
bon,
je te donne la réponse maintenant, je ne vais pas tarder à aller me coucher ..
Donc,
ligne 23 initialise la variable $err
par exemple
Autre solution, utiliser un ternaire à la ligne indiquée par l'erreur
(tu peux faire les deux si tu veux )
je te donne la réponse maintenant, je ne vais pas tarder à aller me coucher ..
Donc,
ligne 23 initialise la variable $err
par exemple
$err = NULL;
Autre solution, utiliser un ternaire à la ligne indiquée par l'erreur
$res['error'] = !empty($err) ? $err : NULL;
(tu peux faire les deux si tu veux )
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
5 juin 2021 à 00:25
5 juin 2021 à 00:25
c est merveilleux jordane cela fonctionne a ravir
non j aurais pas trouver , du moins pas avant plusieurs jours
je tenais a te remercier très sincèrement de ton aide a travers tous mes petits soucis
cela a été vraiment gentil
passe une bonne nuit
non j aurais pas trouver , du moins pas avant plusieurs jours
je tenais a te remercier très sincèrement de ton aide a travers tous mes petits soucis
cela a été vraiment gentil
passe une bonne nuit
jordane45
Messages postés
38270
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 novembre 2024
4 695
5 juin 2021 à 00:27
5 juin 2021 à 00:27
Bonne nuit à toi également,
Pense à marquer le sujet en RESOLU.
Pense à marquer le sujet en RESOLU.