IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

probléme résultat mimeType fichier .avi


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut probléme résultat mimeType fichier .avi
    Bonjour, je suis en train de creer un formulaire de soumission de video comme ci dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form action="" method= "post" id="myform" enctype="multipart/form-data">
     
    <input type="file" name="movie" />
         <button type="submit" id="btn">Upload Movie!</button>
    </form>
    puis dans mon action voici le resutat du file "movie"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    object(Symfony\Component\HttpFoundation\File\UploadedFile)[9]
      private 'test' => boolean false
      private 'originalName' => string 'Dodge Ball.FRENCH.DVDRip.XviD-HooPa.avi' (length=39)
      private 'mimeType' => string 'application/ms-excel' (length=20)
      private 'size' => int 733122560
      private 'error' => int 0
    ma question est la suivante:

    Pourquoi j'ai un fichier de type EXCEL j'ai mis la ligne en couleur rouge ci -dessus pour un fichier AVI, alors que d'autre type de fichier comme ci-dessous une PNG le type rendu est correct.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    object(Symfony\Component\HttpFoundation\File\UploadedFile)[9]
      private 'test' => boolean false
      private 'originalName' => string 'ff.PNG' (length=6)
      private 'mimeType' => string 'image/png' (length=9)
      private 'size' => int 58123
      private 'error' => int 0
    Merci les amis

  2. #2
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Est-ce que c'est un vrai fichier .avi ?
    Où est-ce que c'est un fichier excel dont l'extension a été changée en .avi pour que les tests soient moins longs au moment de l'upload ?

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le type mime lors d'un upload est fourni par le navigateur.
    S'il y a une configuration ratée sur le navigateur tu peux recevoir n'importe quoi comme type mime.
    Ce n'est pas une donnée fiable.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut
    Non, le fichier et un vrai avi, sur Opera j'ai bien le type video/avi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    object(Symfony\Component\HttpFoundation\File\UploadedFile)[9]
      private 'test' => boolean false
      private 'originalName' => string 'Victor.FRENCH.DVDRip.XViD-PUTCH.avi' (length=35)
      private 'mimeType' => string 'video/avi' (length=9)
      private 'size' => int 734150656
      private 'error' => int 0
    mais le problème et sur Mozillla

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    object(Symfony\Component\HttpFoundation\File\UploadedFile)[9]
      private 'test' => boolean false
      private 'originalName' => string 'Hell.2005.fr.tftd.avi' (length=21)
      private 'mimeType' => string 'application/ms-excel' (length=20)
      private 'size' => int 732463104
      private 'error' => int 0
    donc j'ai aussi un probleme lors du Download: j' ai bien mon entete comme ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
     $file=$_GET['file'];
     
     //header("Content-Description: File Transfer");
     //header("Content-type: application/ics") ;
     header('Content-Disposition: attachment; filename="'.$file.'"');
     header("Content-Type: video/avi ");
     
     readfile($file);
     exit();
    ?>
    le fichier ne ge telecharge pas, j'ai juste un fichier icone de 2KO

  5. #5
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Non, le fichier et un vrai avi, sur Opera j'ai bien le type video/avi
    Ce qui confirme le message de "sabotage" : le mime-type n'est pas une donnée fiable.
    Base toi sur une autre information pour faire tes vérifications.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
      
     $file=$_GET['file'];
    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    
    $type = finfo_file($finfo, $file);
    var_dump($type);exit;
     //header("Content-Description: File Transfer");
     //header("Content-type: application/ics") ;
     header('Content-Disposition: attachment; filename="'.$file.'"');
     header("Content-Type: ".$type."; charset=utf-8");
     header('Content-length: '.filesize($file));       
     readfile($file);
     exit();
    ?>
    ?>
    Avec la methode finfo_file ca me retourne:
    'video/x-msvideo'

    donc j'ai beau le mettre dans le

    header("Content-Type: ".$type."; charset=utf-8");
    rien n'y fait

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as regardé avec un editeur de texte ce que contenait le fichier de 2ko ?

    Au passage, on ne traite evidemment jamais directement un fichier dont le nom est donné par l'utilisateur.
    Imagine par exemple que je tape http://tonsite/tonscript.php?file=.htpasswd - hop les mots de passe
    ou http://tonsite/tonscript.php?file=connexion.php - hop les logins de la bdd
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut
    Merci pour la question de sécurité

    Mon fichier de 2ko avec un editeur de texte contient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <br />
    <font size='1'><table class='xdebug-error xe-fatal-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
    <tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Fatal error: Out of memory (allocated 262144) (tried to allocate 733126656 bytes) in E:\projets\Symfony\web\bundles\ecommerceutility\movie\download.php on line <i>14</i></th></tr>
    <tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
    <tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
    <tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0000</td><td bgcolor='#eeeeec' align='right'>136680</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='E:\projets\Symfony\web\bundles\ecommerceutility\movie\download.php' bgcolor='#eeeeec'>..\download.php<b>:</b>0</td></tr>
    <tr><td bgcolor='#eeeeec' align='center'>2</td>
    <td bgcolor='#eeeeec' align='center'>0.0040</td><td bgcolor='#eeeeec' align='right'>138408</td>
    <td bgcolor='#eeeeec'><a href='http://www.php.net/function.readfile' target='_new'>readfile</a>
    (  )</td><td title='E:\projets\Symfony\web\bundles\ecommerceutility\movie\download.php' bgcolor='#eeeeec'>..\download.php<b>:</b>14</td></tr>
    </table></font>
    je vois qu'il y a une erreur de mémoire, j'ai donc augmenter la mémoire du php.ini, mais toujours le même problème de mémoire

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourquoi tu fais un readfile() plutôt qu'il lien direct vers le fichier ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    et ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut
    Je voulais dire que je fais comme la documentation.

    Que puis je dire de plus cher ami

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 168
    Points : 219
    Points
    219
    Par défaut
    Tu utilises sf ou pas ?

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut
    Oui, goabonga j'utilise symfony2

  15. #15
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je voulais dire que je fais comme la documentation.
    Que puis je dire de plus cher ami
    Ba répondre à ma question : pourquoi utiliser readfile() plutôt que de faire un lien direct vers le fichier ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 168
    Points : 219
    Points
    219
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Ba répondre à ma question : pourquoi utiliser readfile() plutôt que de faire un lien direct vers le fichier ?
    Moi je dirais que si par la suite il doit poser un php-ga par la suite, c'est pas con

    par contre si tu utilises symfony tu ne dois pas utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     header('Content-Disposition: attachment; filename="'.$file.'"');
     header("Content-Type: ".$type."; charset=utf-8");
     header('Content-length: '.filesize($file));       
     readfile($file);
     exit();
    mais construire une Response !

    Ton exit vient casser le système événementielle de sf.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut
    le probléme vient seulement avec les .avi de trop grande taille, les autre format ce Download facilement, alors pourquoi dire de ne pas utiliser de header avec symfony goabonga?

  18. #18
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 168
    Points : 219
    Points
    219
    Par défaut
    Pourquoi utiliser symfony ?

    Puis je t'ai répondu, tu casses le système événementielle de sf ....

  19. #19
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu te demandes pourquoi avec des fichiers de grande taille tu dépasses la limite de mémoire ... la réponse est assez évidente non ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Problème sur fichier AVI
    Par stefdevidau dans le forum OpenCV
    Réponses: 0
    Dernier message: 09/01/2014, 11h59
  2. [D6] Problème lecture fichier AVI dans TAnimate
    Par Lung dans le forum Composants VCL
    Réponses: 9
    Dernier message: 21/01/2010, 15h02
  3. Réponses: 8
    Dernier message: 15/04/2009, 17h22
  4. Problème avec fichier avi
    Par ch_adel2005 dans le forum Images
    Réponses: 3
    Dernier message: 21/02/2008, 09h15
  5. Problème lecture fichier .avi TMediaPlayer
    Par Ice-tea dans le forum Delphi
    Réponses: 2
    Dernier message: 10/06/2007, 23h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo