Partage
  • Partager sur Facebook
  • Partager sur Twitter

Prévisualisation d'image avant d'envoyer sur BDD

Sujet résolu
    19 octobre 2018 à 15:41:26

    Bonjour ! 

    Après avoir terminé l'espace membre et l'espace administrateur de mon site, je m'attaque maintenant au plus difficile, l'ajout du contenu via la console admin. 

    Pour cela j'ai cette page qui me permet de créer une fiche d'animé : 

    Jusque là tout est ok, ensuite je souhaite prévisualiser ma fiche qui arrive sur la page d'après :

    <?php include("header_admin.php"); 

     include('functions_admin.php');
    logged_only();
    
    ?>	
    
    <h2> prévisualisation de la fiche de l'animé </h2>
    
    <?php 
    
    	$image = $_FILES['image']['name'];
    	$titre = $_POST['titre'];
    	$titre_alt = $_POST['titre_alternatif'];
    	$date = $_POST['date_sortie'];
    	$nbr = $_POST['nbr_episode'];
    	$auteur = $_POST['auteur'];
    	$studio = $_POST['studio'];
    	$synopsis = $_POST['synopsis']; ?>
    
    <div class="fiche">
    	<?php echo $image; ?></br></br> 
    	Titre : <?php echo $titre; ?></br></br> 
    	Titre alternatif : <?php echo $titre_alt; ?></br></br> 
    	Sortie : <?php echo  $date; ?></br></br> 
    	Nombre d'épisodes : <?php echo $nbr; ?></br></br> 
    	Auteur : <?php echo $auteur; ?></br></br> 
    	Studio : <?php echo $studio; ?></br></br> 
    	Synopsis : </br> <?php echo $synopsis; ?> </br></br> 
    </div>
    
    
    
    <p> Pour modifier <a href="ajout_anime.php">clique ici</a> pour revenir à la page d'ajout d'animé.</p>
    
    <button class="btn btn-primary"> Envoyer la fiche</button>
    

    Mais du coup l'image que j'insère ne s'affiche pas, j'ai cherché des tutos sur internet mais j'ai pas réussis à le faire fonctionner.

    Est ce que je suis obligé d'envoyer l'image sur ma BDD pour pouvoir la prévisualiser ? 

    Par ailleurs j'ai une autre question, une fois que je valide cette fiche et que je souhaite l'envoyer, j'aimerais que cela crée un fichier PHP contenant les informations de l'animés que j'ai prévisualisé dans le dossier où j'aimerais l'enregistrer, afin que celle-ci s'affiche sur le site principal (ici un exemple moche de ce que j'aimerais avoir) :

    Mais est ce que c'est possible de faire ça ? Où est ce que je dois créer les fichiers PHP à la main un par un ? Car du coup la partie admin et ajout d'animé n'aura aucun sens :-°

    Merci pour votre aide ! 

    -
    Edité par Rudeus 19 octobre 2018 à 16:49:35

    • Partager sur Facebook
    • Partager sur Twitter
      19 octobre 2018 à 17:00:34

      philodick a écrit:

      Bonjour,

      C'est $_FILES.

      En effet je me suis trompé sur les screens et le code, j'ai corrigé, en fait cela m'affiche juste le nom de l'image ..
      • Partager sur Facebook
      • Partager sur Twitter
        19 octobre 2018 à 18:26:35

        c'est  normal tu récupères que le nom de l'image, ce qu'il faut c'est que tu récupères tout le chemin de l'image que tu stock puis tu l'envoi dans la base de données.
        • Partager sur Facebook
        • Partager sur Twitter
        Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet.
          20 octobre 2018 à 13:23:33

          Zoki_Marciano a écrit:

          c'est  normal tu récupères que le nom de l'image, ce qu'il faut c'est que tu récupères tout le chemin de l'image que tu stock puis tu l'envoi dans la base de données.


          Du coup je suis quand même obligé de l'envoyer sur la base de donnée pour la prévisualiser ? 

          • Partager sur Facebook
          • Partager sur Twitter
            20 octobre 2018 à 16:25:11

            Non tu peux récupérer le contenu de ton image que tu encodes en base64 pour l'afficher. Tu peux même mettre le contenu base64 dans un input type hidden pour pouvoir l'envoyer dans la base de données après confirmation ;)
            • Partager sur Facebook
            • Partager sur Twitter
            I <3 Ge0 | nohar | Shig was here -> .
              20 octobre 2018 à 16:48:10

              Toshy62 a écrit:

              Non tu peux récupérer le contenu de ton image que tu encodes en base64 pour l'afficher. Tu peux même mettre le contenu base64 dans un input type hidden pour pouvoir l'envoyer dans la base de données après confirmation ;)

              Oulala ! J'avais jamais entendu parlé de ça du coup j'ai cherché un peu :p J'ai donc fait ceci (les lignes importantes sont de la 11 à 13 et la 26: 

              <?php include("header_admin.php"); 
               include('functions_admin.php');
              logged_only();
              
              ?>	
              
              <h2> prévisualisation de la fiche de l'animé </h2></br></br> 
              
              <?php 
              
              	$image = $_FILES['image'];
              	$imData = base64_encode(file_get_contents($image));
              	$src = 'data: ' .mime_content_type($image).';base64, '.$imData;
              	$titre = $_POST['titre'];
              	$titre_alt = $_POST['titre_alternatif'];
              	$date = $_POST['date_sortie'];
              	$nbr = $_POST['nbr_episode'];
              	$auteur = $_POST['auteur'];
              	$studio = $_POST['studio'];
              	$synopsis = $_POST['synopsis']; ?>
              
              <div class="fiche">
              
              	<strong><h2> <?php echo $titre; ?> </strong></h2>
              
              	<?php echo '<figure><img src="'.$src.'" ></figure>'; ?></br></br> 
              	<strong>Titre alternatif : </strong> <?php echo $titre_alt; ?></br></br> 
              	<strong>Sortie :</strong> <?php echo  $date; ?></br></br> 
              	<strong>Nombre d'épisodes :</strong> <?php echo $nbr; ?></br></br> 
              	<strong>Auteur : </strong><?php echo $auteur; ?></br></br> 
              	<strong>Studio : </strong><?php echo $studio; ?></br></br> 
              	<strong>Synopsis :</strong> </br> <?php echo $synopsis; ?> </br></br> 
              </div>
              
              
              
              </br></br> <p> Pour modifier <a href="ajout_anime.php">clique ici</a> pour revenir à la page d'ajout d'animé.</p>
              
              <button class="btn btn-primary"> Envoyer la fiche</button>


              Malheureusement cela m'affiche ceci : 

              Je suppose que pour le chemin de l'image ça doit être du type /dossier/image, mais comme cela vient d'un formulaire comment je peux changer cela ? :-°

              J'avoue ne jamais avoir entendu parlé de l'encodage en base64 du coup je suis un peu perdu ! 

              • Partager sur Facebook
              • Partager sur Twitter
                20 octobre 2018 à 18:52:24

                Le chemin de l'image c'est $_FILES['image']['tmp_name']

                Il faut donc faire ton file_get_content avec ce chemin là ;)

                • Partager sur Facebook
                • Partager sur Twitter
                I <3 Ge0 | nohar | Shig was here -> .
                  20 octobre 2018 à 20:19:41

                  Toshy62 a écrit:

                  Le chemin de l'image c'est $_FILES['image']['tmp_name']

                  Il faut donc faire ton file_get_content avec ce chemin là ;)


                  De ce genre là ? 

                  	$image = $_FILES['image']['tmp_ name'];
                  	$imData = base64_encode(file_get_contents($image));
                  	$src = 'data: ' .mime_content_type($image).';base64, '.$imData;

                  Car j'ai ces erreurs

                  ou alors est ce que je dois rajouter des paramètres dans mon formulaire ? 

                  <h2> Ajout d'un animé </h2></br></br>
                  
                  
                  		<form method="post" action="ajout.php" enctype="multipart/form-data">
                  
                  		<label> Image : </label>
                  		<input type="file" name="image" accept="image.png, image/jpeg" /></br></br>
                  
                  		<label> Titre de l'animé : </label>
                  		<input type="text" name="titre" class="form-control"/></br></br>
                  
                  		<label> Titre alternatif de l'animé : </label>
                  		<input type="text" name="titre_alternatif" class="form-control"/></br></br>
                  
                  		<label> date de sortie  : </label>
                  		<input type="text" name="date_sortie" class="form-control"/></br></br>
                  
                  		<label>  Nombres d'épisodes: </label>
                  		<input type="text" name="nbr_episode" class="form-control"/></br></br>
                  
                  		<label> Auteur : </label>
                  		<input type="text" name="auteur" class="form-control"/></br></br>
                  	
                  
                  		<label> Studio : </label>
                  		<input type="text" name="studio" class="form-control"/></br></br>
                  
                  		<label> Synopsis: </label> </br>
                  		<textarea type ="text"name="synopsis"  class="form-control" > </textarea></br>
                  	
                  		<button class="btn btn-primary"> Prévisualiser</button>
                  		
                  
                  		</form>

                  J'ai cherché sur le net c'est vachement compliqué ! 


                  -
                  Edité par Rudeus 20 octobre 2018 à 20:23:09

                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 octobre 2018 à 21:30:22

                    Fait Un var_dump de $_FILES
                    • Partager sur Facebook
                    • Partager sur Twitter
                    I <3 Ge0 | nohar | Shig was here -> .
                      21 octobre 2018 à 11:10:00

                      Toshy62 a écrit:

                      Fait Un var_dump de $_FILES


                      Je ne sais pas trop pourquoi en testant ce matin cela a fonctionné direct : 

                      Je n'ai pas d'explications :o

                      Du coup penses tu que ce soit possible qu'une fois tout envoyé sur ma BDD, cela me crée un fichier PHP dans un dossier spécifique afin que j'affiche la fiche sur mon site ? 

                      En tout cas merci pour ton aide ! 

                      • Partager sur Facebook
                      • Partager sur Twitter
                        21 octobre 2018 à 11:13:15

                        Si tu utilise une bdd, pourquoi créer un fichier par fiche ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          21 octobre 2018 à 12:47:17

                          Koyuki Tanaka a écrit:

                          Si tu utilise une bdd, pourquoi créer un fichier par fiche ?


                          Hmm si je veux par exemple afficher tout les animés commençant par "A", je peux faire ça sans forcement avoir une fiche par animés ?

                          -
                          Edité par Rudeus 21 octobre 2018 à 12:51:59

                          • Partager sur Facebook
                          • Partager sur Twitter
                            21 octobre 2018 à 17:00:16

                            Ditons que t'as une page "ListAnimees.php" et que tu y récupére la valeur "B" via "$_GET['lettre'] "

                            Sur ta page, tu fait une rêquete BDD en sélectionnant les entrée correspondant à la première lettre B

                            • Partager sur Facebook
                            • Partager sur Twitter
                              22 octobre 2018 à 10:26:11

                              Koyuki Tanaka a écrit:

                              Ditons que t'as une page "ListAnimees.php" et que tu y récupére la valeur "B" via "$_GET['lettre'] "

                              Sur ta page, tu fait une rêquete BDD en sélectionnant les entrée correspondant à la première lettre B


                              En effet cela me parait faisable ! Je vais tester tout ça. Je clos ce sujet comme il est résolu. J'en ouvrirais un autre si jamais je bloque ! 

                              Merci en tout cas ! 

                              • Partager sur Facebook
                              • Partager sur Twitter

                              Prévisualisation d'image avant d'envoyer sur BDD

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown