Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Php débutant] problème upload image php

    21 janvier 2018 à 22:05:50

    Je souhaite envoyer mes images uploadés vers le fichier miniatures de mon site, mais lorsque je valide l'envoi du formulaire, j'ai plusieurs erreurs qui s'affichent :

    Warning: move_uploaded_file(miniatures/170.jpg): failed to open stream: No such file or directory in C:\wamp\www\projetSite\admin\redaction.php on line 46

    Warning: move_uploaded_file(): Unable to move 'C:\wamp\tmp\php5416.tmp' to 'miniatures/170.jpg' in C:\wamp\www\projetSite\admin\redaction.php on line 46

    je n'arrive pas à comprendre ces erreurs, quelqu'un aurait il une solution à mon problème ? 

    voici mon code:

                                                    if(isset($_FILES['miniature'])){
    
                                                              if(!empty($_FILES['miniature']['name'])){
                                                                if(exif_imagetype($_FILES['miniature']['tmp_name']) == 2){
                                                                    $chemin = 'miniatures/'.$lastid.'.jpg';
                                                                    move_uploaded_file( $_FILES['miniature']['tmp_name'], $chemin);
                                                                }
                                                              else{
                                                                $message = "votre image doit être au format jpg";
                                                                  }



    • Partager sur Facebook
    • Partager sur Twitter
      22 janvier 2018 à 8:58:00

      Salut,

      Voici la documentation sur php.net

      Retourne TRUE en cas de succès.

      Si filename n'est pas valide, rien ne se passe, et move_uploaded_file() retournera FALSE.

      Si filename est un fichier téléchargé, mais que pour une raison quelconque, il ne peut être déplacé, rien ne se passe, et move_uploaded_file() retourne FALSE. De plus, une alerte sera affichée.

       Vérifie que le dossier dans lequel tu souhaites déplacer est correct (que le dossier existe, que le chemin soit le bon, ...)

      De plus, vue ton chemin (miniatures/...jpg), le dossier doit se trouver dans projetSite/admin ... vérifie que ce chemin soit bien le bon.

      if(exif_imagetype($_FILES['miniature']['tmp_name']) == 2)

      Utilises plutôt la constante IMAGETYPE_JPEG que le 2.

      Au plaisir,

      • Partager sur Facebook
      • Partager sur Twitter
        22 janvier 2018 à 14:44:08

        c'etait bien le chemin de move_uploaded_files qui n'etait pas bon, cependant maintenant que les images s'affichent correctement j'ai un nouveau problème que je n'arrive pas à résoudre. 

        Je souhaite que les miniatures de mes articles s'affichent 3 par 3 à la suites les unes des autres (l'article le plus récent tout à gauche) en commencant toujours de gauche à droite or à la 4ème miniatures celle-ci se met tout à droite. 

        J'ai essayer avec float: left mais cela ne change rien.

        voici mon code:

          <div class="container autour">
                        <div class="row">
                            <div class="lastArticles">
                            <h1>Derniers articles</h1>
                            </div>
                        <?php while($a = $articles->fetch()){ ?>
        
                            <div class=" col-xs-12 col-sm-6 col-md-4 col-lg-4  style">
        
                                <a href="<?= $a ['categorie'] . "/" . $a ['url'] . "/" .$a['id'] ?>">
                                     <img class=" img-responsive" src="miniatures/<?= $a['id'] ?>.jpg"/>
                                     <div class="titre">
                                       <h1><?= $a['titre']?></h1>
        
        
                                     </div>
                                </a>
        
                            </div>
        
        
        
        
        
                        <?php } ?>
        
        
                  </div>
                  </div>
          .style{
            width: 33%;
            margin-top: 20px;
            margin-bottom: 5px;
            margin-left: 3px;
            float: left;
        
          }


        Si quelqu'un à une solution je suis preneur 

        • Partager sur Facebook
        • Partager sur Twitter
          22 janvier 2018 à 15:20:39

          Pourquoi ne pas faire un ORDER BY directement dans ta requête qui récupère les articles? 

          C'est la meilleurs des solutions !

          • Partager sur Facebook
          • Partager sur Twitter
            22 janvier 2018 à 15:40:12

            j'ai fais un ORDER BY date_time_publication DESC dans ma requête c'est pour ca que je comprend pas du tout pourquoi ça me fait ça ..
            • Partager sur Facebook
            • Partager sur Twitter
              22 janvier 2018 à 15:41:41

              Fais donc voir ta requête ainsi que la partie Php qui s'occupe de récupérer les articles
              • Partager sur Facebook
              • Partager sur Twitter
                22 janvier 2018 à 15:44:42

                <?php
                $bdd = new PDO ("mysql:host=localhost;dbname=articles;charset=utf8","root","");
                
                $articles = $bdd->query('SELECT * FROM articles ORDER BY date_time_publication DESC');
                
                
                ?>
                <?php
                $bdd = new PDO("mysql:host=localhost;dbname=articles;charset=utf8", "root", "");
                
                $mode_edition = 0;
                
                if(isset($_GET['edit']) AND !empty($_GET['edit'])){
                    $mode_edition = 1;
                    $edit_id = ($_GET['edit']);
                    $edit_article = $bdd->prepare('SELECT * FROM articles WHERE id = ?');
                    $edit_article->execute(array($edit_id));
                
                    if($edit_article->rowCount() == 1) {
                
                      $edit_article = $edit_article->fetch();
                
                    } else{
                      die("Erreur : l\'article concerné n\'existe pas.");
                    }
                }
                
                if(isset($_POST['article_categorie'], $_POST['article_titre'], $_POST['article_accroche'], $_POST['article_redacteur'])){
                
                            if(!empty($_POST['article_categorie']) AND !empty($_POST['article_titre']) AND !empty($_POST['article_accroche']) AND !empty($_POST['article_redacteur'])){
                                $article_categorie = htmlspecialchars ($_POST['article_categorie']);
                                $article_titre = htmlspecialchars ($_POST['article_titre']);
                                $article_url = ($_POST['article_url']);
                                $article_accroche = ($_POST['article_accroche']);
                                $article_redacteur = htmlspecialchars ($_POST['article_redacteur']);
                
                                      if($mode_edition == 0){
                
                                                  var_dump($_FILES);
                                                  var_dump(exif_imagetype($_FILES['miniature']['tmp_name']));
                
                
                
                                                  $ins = $bdd->prepare('INSERT INTO articles (categorie, titre, url, accroche, redacteur, date_time_publication) VALUES (?, ?, ?, ?, ?, NOW())');
                                                  $ins->execute(array($article_categorie, $article_titre, $article_url, $article_accroche, $article_redacteur));
                                                  $lastid= $bdd->lastInsertId();
                
                                                                if(isset($_FILES['miniature'])){
                
                                                                          if(!empty($_FILES['miniature']['name'])){
                                                                            if(exif_imagetype($_FILES['miniature']['tmp_name']) == 2){
                                                                               $dir = 'C:\wamp\www\projetSite\miniatures';
                                                                                $chemin = $dir . "/" . $lastid.'.jpg';
                                                                                move_uploaded_file( $_FILES['miniature']['tmp_name'], $chemin);
                                                                                print_r($_FILES);
                                                                            }
                                                                          else{
                                                                            $message = "votre image doit être au format jpg";
                                                                              }
                                                                          }
                                                                  }
                                                                  $message = "Votre article a bien été posté";
                


                • Partager sur Facebook
                • Partager sur Twitter

                [Php débutant] problème upload image php

                × 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