Stocker l'url d'une image dans une base de données HELP :/

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Stocker l'url d'une image dans une base de données HELP :/

Re: Stocker l'url d'une image dans une base de données HELP :/

par Ryle » 18 mars 2016, 18:12

En fait c'est toi qui donne le nom du fichier quand tu fais le move_upload_file() : tu le déplaces et le nomme en même temps.
Si tu utilises juste "$_FILES['photo1']['name']", le fichier conserve son nom d'origine. Tu peux simplement compléter celui-ci en ajoutant par exemple la date / heure d'upload dans le nom du fichier, par exemple :
move_uploaded_file($_FILES['photo1']['tmp_name'],
    '../md/' . date(Ymd-His) . basename($_FILES['photo1']['name']));
Si tu veux ajouter l'id qui lui est attribué en base, tu peux le faire également, mais comme tu ne connais pas celui-ci tant que l'INSERT n'a pas eu lieu, cela implique de re-modifier le nom du fichier (physiquement sur le serveur et dans l'enregistrement en base) une fois ton insertion effectuée :)

Re: Stocker l'url d'une image dans une base de données HELP :/

par raphaelf2 » 18 mars 2016, 15:33

Genre si je pouvais rajouter l'id ou le titre de l'annonce après le nom du fichier ça serait parfait :p

Re: Stocker l'url d'une image dans une base de données HELP :/

par raphaelf2 » 18 mars 2016, 15:31

Ah oui merci a toi mon ami c'est partait :D Dernier petite chose car il reste un petit soucis c'est que l'image quand elle s'upload elle garde le nom quel a du coup des qu'ont upload une photo avec le meme nom ça affiche la premère image et c'est plutot galère ^^

Re: Stocker l'url d'une image dans une base de données HELP :/

par Ryle » 18 mars 2016, 15:00

Bonjour,

Je pense que ton problème est en amont de la base de données mais à l'envoi du fichier. Celui-ci est-il accessible à l'adresse http://xxxxxxxxxxxx.fr/xxxxx/md/zzzzzz dans ton navigateur ? A mon avis ce n'est pas le cas et il faudrait vérifier le résultat du move_uploaded_file() pour pouvoir dire que l'opération a réussi ou non :)
En l'occurrence, ce dernier attend un chemin sur le serveur (relatif au fichier php ou absolu par rapport à la structure de fichier), pas une adresse url sur laquelle il ne peut pas écrire :)

Stocker l'url d'une image dans une base de données HELP :/

par raphaelf2 » 18 mars 2016, 14:20

Bonjour, je fais appele a vous car j'ai un petit problème, je veux uploader l'url de mon image direct dans la base de données, tout marche bien y'a aucun soucis le problème c'est que l'image ne s'upload pas sur le serveur alors que la table mysql marche bien.

page ajout.php :

Code : Tout sélectionner

<form method="post" action="upload.php" enctype="multipart/form-data"> <label for="mon_fichier">Photo à envoyer : </label><br /> <input type="hidden" name="MAX_FILE_SIZE" value="1048576" /> <input type="file" name="photo1" id="photo1" /><br /> <p> <label for="titre">Titre : <input type="text" name="titre" value="" size="30" maxlength="100"/> </label> </p> <p> <label for="description"> description : <input type="text" name="description" value="" size="33" maxlength="50"/> </label> </p> <p> <label for="age"> age : <input type="text" name="age" value="" size="33" maxlength="50"/> </label> </p> <p> <label for="origine"> origine: <input type="text" name="origine" value="" size="33" maxlength="50"/> </label> </p> <p> <label for="num"> Num : <input type="text" name="num" value="" size="33" maxlength="50"/> </label> </p> <p> <label for="ville"><strong> ville</strong> </label> <br/><br/> <textarea name="ville" id="ville" rows="10" cols="100"> </textarea> </p> <p> <label for="cp"> <strong> cp : </strong> </label> <br/> <br/> <textarea name="cp" id="cp" rows="10" cols="20"> </textarea> </p> <p> <label for="statut"> <strong> statut : </strong> </label> <br/> <br/> <textarea name="statut" id="statut" rows="10" cols="20"> </textarea> </p> <p> <input type="submit" name="submit" value="Envoyer"/> <br/> </form>
et voici la page upload.php

Code : Tout sélectionner

<?php if(isset($_POST['titre'])&& isset($_POST['description']) && isset($_POST['age']) && isset($_POST['origine']) && isset ($_POST['num']) && isset($_POST['ville']) && isset($_POST['cp']) && isset($_POST['statut']) && isset ($_FILES['photo1'])) { if(isset($_FILES['photo1']) && $_FILES['photo1']['error']==0) { // Inscription de la photo uploadé dans le dossier bouquin move_uploaded_file($_FILES['photo1']['tmp_name'], 'http://xxxxxxxxxxxx.fr/xxxxx/md/'.basename($_FILES['photo1']['name'])); echo 'L\'envoi a bien été effectué'; } try{ // Connexion à la BDD $bdd=new PDO('mysql:host=xxx;dbname=xxxx', 'xxxx','xxxxxxxxxxxx'); } catch(Exception $e){ die ('Erreur:'.$e->getMessage()); } // Insertion des données envoyées par l'internaute grâce à une requête préparée $stockage='http://xxxxxxxxxxxx.fr/xxxxx/md/'.$_FILES['photo1']['name'].''; $insertion=$bdd->prepare('INSERT INTO annonces(titre, description, age, origine, num, ville, cp, statut, photo1) VALUES (:titre, :description, :age, :origine, :num, :ville, :cp, :statut, :photo1)'); $insertion->execute(array( 'titre' => $_POST['titre'], 'description' => $_POST['description'], 'age' => $_POST['age'], 'origine' => $_POST['origine'], 'num' => $_POST['num'], 'ville' => $_POST['ville'], 'cp' => $_POST['cp'], 'statut' => $_POST['statut'], 'photo1' => $stockage )); if($insertion==true) { echo '<p> Les données ont bien été enregistrées</p>'; } else { echo 'Erreur dans l\'enregistrement des données </p>'; } $insertion->closeCursor(); // déconnexion } ?>
Merci de votre aide :D