Chemin images php mysql
Résolu
lina-24
Messages postés
63
Date d'inscription
Statut
Membre
Dernière intervention
-
lina-24 Messages postés 63 Date d'inscription Statut Membre Dernière intervention -
lina-24 Messages postés 63 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je reviens vers vous au sujet de l'Upload images sur le serveur.
Quand j'exécute mon script le chemin entier s'enregistre sur la base de données
ex.. ( uploads/files/image.jpg ),
est-ce que c'est possible d'enregistrer que le nom de l'image sur ma base de donné mysql
ex ( image.jpg )
pas avec le chemin du dossier ( uploads/files/ )
Merci.
Je reviens vers vous au sujet de l'Upload images sur le serveur.
Quand j'exécute mon script le chemin entier s'enregistre sur la base de données
ex.. ( uploads/files/image.jpg ),
est-ce que c'est possible d'enregistrer que le nom de l'image sur ma base de donné mysql
ex ( image.jpg )
pas avec le chemin du dossier ( uploads/files/ )
Merci.
<?php //Affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //connexion à ta bdd $server = 'localhost'; $username = 'root'; $password = ''; $dbname = 'test'; $mysqli = new mysqli($server, $username, $password, $dbname); if ($mysqli->connect_error) { sendResponse('Erreur de connexion (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error, false); } /** * Permet de récupérer proprement les variables avant de les utiliser * @param type $varName * @param type $defaultValue * @return type */ function getPost($varName,$defaultValue=NULL){ return isset($_POST[$varName]) ? $_POST[$varName] : $defaultValue; } /** * Fonction qui va assurer le renvoi, au format json, du message * @param type $message * @param type $success */ function sendResponse($message,$success=false){ header('Content-Type: application/json'); // on force le format en JSON dans le header http de la réponse $data = array('success' => $success, 'messages' => $message); echo json_encode($data); exit; } /** * Retourne les infos d'un "visiteur" * @global mysqli $mysqli * @param string $email * @return array */ function getVisitorByMail($email){ global $mysqli; $sql = "SELECT * FROM visitor WHERE email = '$email' "; if (!$result = $mysqli->query($sql)) { sendResponse("Message d'erreur : %s\n", $mysqli->error , false); } return $result -> fetch_array(MYSQLI_ASSOC); } function addInDb($name,$email,$url){ global $mysqli; $sql = "INSERT INTO visitor (Name,email, Image) VALUES ('$name',,'$email','$url')"; if (!$result = $mysqli->query($sql)) { sendResponse("Message d'erreur : %s\n", $mysqli->error , false); } return $result; } //récupération PROPRE des variables AVANT de les utiliser $name = getPost('Name'); $email = getPost('email'); //on récupère proprement la variables $_FILES $files = !empty($_FILES['userImage']) ? $_FILES['userImage'] : NULL; if(empty($files)){ sendResponse("Aucun fichie à uploader !",false); } //On récupère les infos du visiteur pour voir si son email existe déjà $visitor = getVisitorByMail($email); //si l'utilisateur existe déjà if(!empty($visitor)){ sendResponse("Cet email existe déjà !",false); } $dossier = 'uploads/files/'; $filename = $files['name']; $ext = pathinfo($filename, PATHINFO_EXTENSION); $url = $dossier . uniqid(rand()) . '.' . $ext; $allowed = array('gif', 'jpg', 'jpeg', 'png'); if (!in_array($ext, $allowed)) { sendResponse("Extension de fichier non autorisé !",false); } if(!is_uploaded_file($files['tmp_name'])){ sendResponse("Erreur lors du téléchargement du fichier !",false); } if(!move_uploaded_file($files['tmp_name'],$url)){ //si le move_uploaded a échoué sendResponse("Erreur lors du déplacement du fichier !",false); }else{ //l'uplod c'est bien passé... addInDb($name,$email,$url); sendResponse("Successfully Uploaded",true); }
Configuration: Windows / Chrome 101.0.4951.67
A voir également:
- Chemin images php mysql
- Des images - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Images enregistrées ✓ - Forum Bluetooth
- Voir ses images enregistrés - Forum Blender
4 réponses
justement jordane45 c'est la que je bug :( je reviens vers vous pour m'aider a résoudre de problème.
Comment ça tu bug ?
On va y aller par étape ....
Actuellement .. quelle est la variable ( du code que tu nous montres) qui contient la donnée enregistrée en bdd ?
Une fois que tu l'auras trouvée ...
Regarde dans le code, la variable qui pourrait contenir la donnée que tu souhaites ( le nom du fichier ) ( petit indice .. le nom de cette variable, en anglais, veut dire : nom du fichier )
Remplace enfin la première variable par cette seconde dans le code qui sert à faire l'ajout en bdd.. et le tour est joué.
On va y aller par étape ....
Actuellement .. quelle est la variable ( du code que tu nous montres) qui contient la donnée enregistrée en bdd ?
Une fois que tu l'auras trouvée ...
Regarde dans le code, la variable qui pourrait contenir la donnée que tu souhaites ( le nom du fichier ) ( petit indice .. le nom de cette variable, en anglais, veut dire : nom du fichier )
Remplace enfin la première variable par cette seconde dans le code qui sert à faire l'ajout en bdd.. et le tour est joué.
sincèrement je suis perdu :( j'abandonne le php j'ai vraiment la tête qui tourne, c'est un exercice que je dois remettre demain matin au professeur d'informatique.
Ah la la la la.....
La fonction qui te sert à faire l'insert en bdd c'est
Dans cette ligne de code, on constate que le chemin vers le fichier se trouve dans la variable $url
Dans le code, tu as une variable qui, comme son nom l'indique, contient le nom du fichier ... cette variable c'est :
$fileName
Donc... il te suffit d'utiliser cette variable à la place de $url .. et là.. tu n'auras que le nom du fichier et pas son chemin complet.
Enfin bon.. ce n'est pas un problème de langage php... c'est surtout que tu as un souci pour être capable de lire du code (et le comprendre)...
Pour progresser, il faudrait que essaye de mettre des commentaires dans le code à chaque "étape".
En faisant cela, ça te permettra d'en comprendre le fonctionnement plus facilement...
D'ailleurs, il faut prendre cette habitude dès maintenant afin que, lorsque tu feras tes propres codes, être capable de pouvoir y revenir plusieurs semaines plus tard et le comprendre ... ou pour qu'un ( futur..) collègue .. soit capable de reprendre ton code si besoin..
La fonction qui te sert à faire l'insert en bdd c'est
addInDb($name,$email,$url);
Dans cette ligne de code, on constate que le chemin vers le fichier se trouve dans la variable $url
Dans le code, tu as une variable qui, comme son nom l'indique, contient le nom du fichier ... cette variable c'est :
$fileName
$filename = $files['name'];
Donc... il te suffit d'utiliser cette variable à la place de $url .. et là.. tu n'auras que le nom du fichier et pas son chemin complet.
Enfin bon.. ce n'est pas un problème de langage php... c'est surtout que tu as un souci pour être capable de lire du code (et le comprendre)...
Pour progresser, il faudrait que essaye de mettre des commentaires dans le code à chaque "étape".
En faisant cela, ça te permettra d'en comprendre le fonctionnement plus facilement...
D'ailleurs, il faut prendre cette habitude dès maintenant afin que, lorsque tu feras tes propres codes, être capable de pouvoir y revenir plusieurs semaines plus tard et le comprendre ... ou pour qu'un ( futur..) collègue .. soit capable de reprendre ton code si besoin..