Renommer ces images avant l insertion en base de donnée
Résolu
flexi2202
Messages postés
3822
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
A voir également:
- Renommer ces images avant l insertion en base de donnée
- Renommer des fichiers en masse - Guide
- Base de registre - Guide
- Renommer iphone - Guide
- Insertion sommaire word - Guide
- Touche insertion clavier - Guide
10 réponses
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
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
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;
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
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 ;
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;
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;
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 )