lors de l upload des images dans ma base de donnée les images ne sont pas renommées et je pense que cela va poser des problèmes
j ai bien un système qui évite d avoir des doublons mais cela n est pas ce qu il y a de mieux
en effet si jean a sur son pc une image image 1.jpg et qu il l upload
j aurais dans mon dossier uploads sur mon serveur l image 1.jpg
si André a aussi une image image1.jpg et qu il veux l envoyer dans le dossier upload
il ne va pas comprendre pourquoi je lui informe qu elle existe déjà
donc est il possible de renommer les images par exemple en aaaaaaa001 pour la première
en aaaaaaa002 pour la deuxième
et ainsi de suite
je recherche un moyen simple
j ai entendu parler de uniqid()
je pourrais donc modifier le nom de mon image avec ce générateur unique et en y insérant par exemple l ID de l utilisateur et le pseudo par exemple
mais comment y arriver ?
merci de l aide
voici donc mon fichier qui traite les images
Code : Tout sélectionner
<?php
// Démarrage SESSION
session_start();
//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"];
// 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;