Partage
  • Partager sur Facebook
  • Partager sur Twitter

Upload Vidéo php

Sujet résolu
    10 janvier 2018 à 19:42:30

    Salut, j'essaie de permettre l'Upload de vidéo sur mon site.

    Ce code fonctionne pr les images, ms ne fonctionne pas pr la video:

    <?php
    
    include('var.php');
    
    if(isset($_POST['submit'])){
    
    if(!empty($_FILES)){
    
    $file_name = $_FILES['video']['name'];
    $file_extension = strrchr($file_name, ".");
    
    $file_tmp_name = $_FILES['video']['tmp_name']; 
    $filedest = 'file/'.$file_name;
    
    $extension_autorisees = array('.mp4, .MP4');
    
    if(array($file_extension, $extension_autorisees)){
    if(move_uploaded_file($file_tmp_name,$filedest)){
    $req = $bdd->prepare('INSERT INTO file(name, file_url) VALUES (?,?)');
    $req->execute(array($file_name, $filedest));
    echo "<script>alert(\"Fichier envoyé avec succès\")</script>";
    
    }else{
    echo'Erreur';
    }
    }else{
    echo'Uniquement .mp4, .MP4';
    }
    }
    
    }
    
    ?>
    



    Côté HTML:

    <form action="" method="post" enctype="multipart/form-data">
    <span>Filename:</span>
    <input type="file" name="video" id="video" /> <br>
    <input type="submit" name="submit" value="Submit" />
    </form>



    Précision: J'ai chercher et trouvé plusieurs codes via google, ms aucun n'a marché,

    dc je suis revenu à celui qui upload les images.

    Quelqu'un peut m'aider svp ?

    • Partager sur Facebook
    • Partager sur Twitter
      10 janvier 2018 à 19:44:04

      Salut,

      déjà est ce que le fichier est DL sur le serveur ? Avant d'attaquer la BD ?

      ++

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        10 janvier 2018 à 19:52:48

        Sinon, conseil: indente ton code.

        • Partager sur Facebook
        • Partager sur Twitter
          10 janvier 2018 à 19:55:58

          @christouphe

          Oui le fichier doit être DL sur le serveur.

          @Artemix

          Je comprend pas ce q tu veut dire par "indente ton code"

          • Partager sur Facebook
          • Partager sur Twitter
            10 janvier 2018 à 20:04:31

            non tu n'as pas compris ma question, ça plante avant ou après le DL du fichier ?

            Est ce que le fichier est présent sur le serveur après validation du formulaire ?

            ++

            • Partager sur Facebook
            • Partager sur Twitter
              10 janvier 2018 à 20:10:15

              Ca plante avant et le ficher n'est pas sur le serveur, et il n'y a rien de noté ds la BDD.

              En fait le formulaire se valide bien (actualisation de la page ap submit), ms il ne se passe rien.

              • Partager sur Facebook
              • Partager sur Twitter
                10 janvier 2018 à 20:15:48

                Je suis en local. Il sont déjà activer (j'ai du corriger une erreur).

                Ta pu tester ce code, ou déjà utilisé un code pr upload des vidéos ?

                -
                Edité par UriUri 10 janvier 2018 à 20:16:39

                • Partager sur Facebook
                • Partager sur Twitter
                  10 janvier 2018 à 20:23:00

                  Bon alors c'est ton file_extension qui a un '.' au départ => à revoir ;)

                   EDIT:

                  <?php
                  $extension_autorisees = array(
                              0 =>'.bat',
                              1 => '.BAT'
                          );

                  Pro ou débutant, il faut toujours savoir ce que contient une variable ;)

                  -
                  Edité par christouphe 10 janvier 2018 à 20:28:24

                  • Partager sur Facebook
                  • Partager sur Twitter
                    10 janvier 2018 à 20:33:35

                    J'ai testé en remplaçant ".mp4" par "mp4" et ça a pas marché. C ça q tu voulais dire ?

                    Je viens de tester l'envoie d'image (png) avec le code à la base et ça a marché.

                    L'extension autorisé n'a pas été respecté.

                    Aussi, c peut-être un pb de taille, ds ce cas comment je fait stp ?

                    -
                    Edité par UriUri 10 janvier 2018 à 20:36:11

                    • Partager sur Facebook
                    • Partager sur Twitter
                      10 janvier 2018 à 20:37:32

                      remplace la déclaration par ce que je t'ai donné:

                      <?php
                      
                      if (isset($_POST['submit'])) {
                          
                          if (! empty($_FILES)) {
                              echo '<pre>'.print_r($_FILES,true).'</pre>';
                              $file_name = $_FILES['video']['name'];
                              $file_extension = strrchr($file_name, ".");
                              
                              $file_tmp_name = $_FILES['video']['tmp_name'];
                              $filedest = 'file/' . $file_name;
                              
                              $extension_autorisees = array(
                                  0 =>'.mp4',
                                  1 => '.MP4'
                              );
                              
                              echo '<pre>'.print_r($file_extension,true).'</pre>';
                              echo '<pre>'.print_r($extension_autorisees,true).'</pre>';
                              if (in_array(
                                  $file_extension,
                                  $extension_autorisees
                              )) {
                                  echo $file_tmp_name.'<br>';
                                  echo $filedest;
                                  if (move_uploaded_file($file_tmp_name, $filedest)) {
                                      echo 'Fichier transféré dans '.$filedest;
                                      $req = $bdd->prepare('INSERT INTO file(name, file_url) VALUES (?,?)');
                                      $req->execute(array(
                                          $file_name,
                                          $filedest
                                      ));
                                      echo "<script>alert(\"Fichier envoyé avec succès\")</script>";
                                  } else {
                                      echo 'Erreur';
                                  }
                              } else {
                                  echo 'Uniquement .mp4, .MP4';
                              }
                          }
                      }
                      
                      ?>
                      <form action="" method="post" enctype="multipart/form-data">
                      <span>Filename:</span>
                      <input type="file" name="video" id="video" /> <br>
                      <input type="submit" name="submit" value="Submit" />
                      </form>



                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        10 janvier 2018 à 20:42:01

                        (sinon, le filtrage par extension est une erreur profonde et une faille de sécurité)

                        -
                        Edité par Anonyme 10 janvier 2018 à 20:42:07

                        • Partager sur Facebook
                        • Partager sur Twitter
                          10 janvier 2018 à 20:45:33

                          Je viens de tester le code, ça accepte bien uniquement q les mp4,

                          ms ça ne marche tjr pas.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            10 janvier 2018 à 20:46:50

                            Bonsoir,

                            Première chose à vérifier est la taille des fichier. Php permet de base un upload de 2Mo.

                            • Partager sur Facebook
                            • Partager sur Twitter
                            Merci de signaler votre sujet résolu, cela nous évite des pages de lecture inutile pour arriver au bout de 15 réponses sur la dernière qui dit "merci problème résolut!"
                              10 janvier 2018 à 20:47:38

                              bah si ça part en erreur, il faut comprendre pourquoi le move_uploaded_file ne fonctionne pas ;)

                              ++

                              • Partager sur Facebook
                              • Partager sur Twitter
                                10 janvier 2018 à 20:50:36

                                @christouphe

                                Il n'y a pas de message d'erreur, il y a juste validation du formulaire (actualisation de la page ap submit) et rien d'autre.

                                @tartanpion52

                                Je suis en local et le fichier fait 30Mo. Comment je peux faire pr qu'il puisse être uploadé stp ?

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  10 janvier 2018 à 20:53:23

                                  re,

                                  Il faut voir les détails de la documentation ici: https://secure.php.net/manual/fr/features.file-upload.common-pitfalls.php

                                  Des valeurs sont à modifier dans le php.ini. Mais attention sur un site hébergé tu risque de retrouver ce même problème surtout sur un mutualisé et la pas de modifications possibles.

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Merci de signaler votre sujet résolu, cela nous évite des pages de lecture inutile pour arriver au bout de 15 réponses sur la dernière qui dit "merci problème résolut!"
                                    10 janvier 2018 à 20:55:48

                                    Sinon ini_set:

                                    https://www.google.fr/search?q=ini_set+max+upload+size&ie=utf-8&oe=utf-8&client=firefox-b&gfe_rd=cr&dcr=0&ei=sm9WWornNbTP8Aeo6724BQ

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      10 janvier 2018 à 21:07:53

                                      Premier reflexe avec l'upload peu importe le type de fichier, il faut check les erreurs spécifiques à l'upload dans la variable $_FILES['video']['error'] .

                                      Ensuite tu peux utiliser ceci en fonction du résultat:

                                      http://php.net/manual/fr/features.file-upload.errors.php
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        10 janvier 2018 à 21:09:29

                                        Je viens de regarder ds php.ini et le upload_max_filesize est de 64M, or ma video est de 30M.

                                        Queslqu'un à une idée ?

                                        PS: je suis en serveur local.

                                        -
                                        Edité par UriUri 10 janvier 2018 à 21:09:58

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          11 janvier 2018 à 9:32:50

                                          xoxotf a écrit:

                                          Premier reflexe avec l'upload peu importe le type de fichier, il faut check les erreurs spécifiques à l'upload dans la variable $_FILES['video']['error'] .

                                          Ensuite tu peux utiliser ceci en fonction du résultat:

                                          http://php.net/manual/fr/features.file-upload.errors.php


                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            12 janvier 2018 à 8:02:24

                                            J'ai testé l'Upload avec une vidéo de petite taille et ça a marché.

                                            Etant donnée q  ds php.ini et le upload_max_filesize est de 64M, or ma video est de 30M, 

                                            je pense tt simplement q le problème vien dy fait q je sois en localhost.

                                            Je testerai via un serveur dédié.

                                            Merci pr vos aides.

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            Anonyme
                                              12 janvier 2018 à 8:56:18

                                              Pitié, relis-toi...

                                              Sinon, 64M, 30M, M quoi ?

                                              Si c'est 64Mb et 30MB, c'est normal que ça ne marche pas, il faut calculer la taille comme 30*8, qui est donc supérieure à 64Mb (ou 8MB)

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                12 janvier 2018 à 18:15:12

                                                @Artemix

                                                Dans php.ini (et ailleurs ds mes recherches google) c noté comme ça. C pas précisé M quoi.

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Anonyme
                                                  12 janvier 2018 à 21:05:40

                                                  Pitié, relis-toi... x2

                                                  Et si tu tentes d'uploader un fichier de 7MB et de 9MB ?

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    12 janvier 2018 à 21:21:51

                                                    @UriURi,

                                                    Que te donne un echo ini_get('upload_max_filesize'); ? A savoir si c'est le bon php.ini que tu as modifié.

                                                    Et il faut vérifier la valeur de $_FILES['video']['error'] 

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    le bienfait n'est jamais perdu
                                                      12 janvier 2018 à 21:48:11

                                                      echo ini_get('upload_max_filesize'); me donne 64M, soit la même valeur contenu ds php.ini

                                                      Comment je peux vérifier la valeur $_FILES['video']['error']  ?

                                                      Rappel: l'upload d'une video de 2.05 Mo fonctionne bien, ms pas pr une vidéo de 30Mo.


                                                      -
                                                      Edité par UriUri 12 janvier 2018 à 22:14:27

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        13 janvier 2018 à 13:34:28

                                                        Bonjour,

                                                        merci de faire attention à ton écriture, UriUri.

                                                        "Sont ainsi susceptibles de modération (liste non exhaustive) : les messages en langage abrégé ou dont l'orthographe est trop approximative".

                                                        Source : https://openclassrooms.com/code-of-conduct

                                                        D'autant que ça t'a été demandé plusieurs fois sur ce topic.

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter

                                                        Pas d'aide concernant le code par MP, le forum est là pour ça :)

                                                          14 janvier 2018 à 9:35:37

                                                          Re,

                                                          UriUri a écrit:

                                                          Je viens de regarder ds php.ini et le upload_max_filesize est de 64M, or ma video est de 30M.

                                                          Queslqu'un à une idée ?

                                                          PS: je suis en serveur local.

                                                          -
                                                          Edité par UriUri 10 janvier 2018 à 21:09:58

                                                          Attention il y a plusieurs valeurs à modifier pour permettre un upload de grande capacité:

                                                          • upload_max_filesize ==> Définie la taille maxi autorisée pour la fonction même d'upload
                                                          • max_execution_time ==> Définie la durée maximum d'exécution d'un script.
                                                          • post_max_size ==> Définie la valeur maximal d'un fichier autorisé pour un formulaire (doit être supérieure à upload max fileseize)
                                                          • max_file_uploads ==> Définie le nombre maxi de fichier pour l'upload multiple. Attention les valeurs précédente concerne la somme des fichier dans le cas d'un upload multiple.
                                                          • max_input_time ==> définit le temps maximal, en secondes, au script pour recevoir les données ; cela inclut le téléchargement du fichier. Pour les fichiers multiples, ou les gros fichiers, ou encore pour les utilisateurs sur des connexions lentes, la valeur par défaut de 60 secondes peut être dépassée.


                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          Merci de signaler votre sujet résolu, cela nous évite des pages de lecture inutile pour arriver au bout de 15 réponses sur la dernière qui dit "merci problème résolut!"

                                                          Upload Vidéo 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