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

Langage PHP Discussion :

Impossible de télécharger un fichier zip


Sujet :

Langage PHP

  1. #1
    Expert éminent sénior

    Avatar de snake264
    Homme Profil pro
    Datascientist chez Leboncoin
    Inscrit en
    Novembre 2006
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Datascientist chez Leboncoin
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 914
    Points : 13 312
    Points
    13 312
    Par défaut Impossible de télécharger un fichier zip


    J'ai fait un script PHP qui upload un fichier XML ou une archive ZIP, ensuite lance une commande système sur un fichier jar et ce fichier jar produit un zip. Jusque là tout fonctionne bien.

    Ensuite je cherche à télécharger ce zip produit par mon jar mais mon script affiche le code binaire de mon zip dans ma page au lieu de télécharger le zip.

    Voici mon code :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php 
        $upload = FALSE;
     
        if (isset ($_FILES['fileToUpload']) && ($_FILES['fileToUpload']['type'] == "text/xml" || $_FILES['fileToUpload']['type'] == "application/zip")) {
            $destination_path = getcwd () . DIRECTORY_SEPARATOR . $_FILES['fileToUpload']['name'];
     
            if (move_uploaded_file ($_FILES['fileToUpload']['tmp_name'], $destination_path)) {
                echo "Upload finished, now translation is in progress<br/>";
                $upload = TRUE;
            }
     
            if ($upload) {
                $commande = "java -jar NeptuneToRDF.jar " . $destination_path;
                exec ($commande, $output);
                if (!empty ($output)) {
                    echo "There is a problem with the Neptune file";
                }
                else {
                    echo "Translation is ok";
                    unlink($destination_path);
     
                    $rdfFile = basename(substr ($destination_path, 0, -4) . "_RDF.zip");
     
                    header("Content-disposition: attachment; filename=$rdfFile\n");
                    header("Content-Type: x/y\n");
                    readfile ($rdfFile); 
                }
            }
        }
        else {
            echo "Thanks to choose a neptune file";
        }
     
    ?>
    J'ai aussi essayé le content type "application/zip" et ça donne la même chose. J'ai aussi essayé un "echo" à la place d'un "readfile" et ça m'affiche juste la valeur de "$rdfFile".

    Une idée de ce que j'aurai pu mal faire ?


  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    tu peux modifier le content-disposition et la passer en "inline" ou bien modifier la gestion du cache en ajoutant une ligne dans le header :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Cache-Control: no-cache, must-revalidate");
    personnellement j'utilise la première solution.
    A+

  3. #3
    Expert éminent sénior

    Avatar de snake264
    Homme Profil pro
    Datascientist chez Leboncoin
    Inscrit en
    Novembre 2006
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Datascientist chez Leboncoin
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 914
    Points : 13 312
    Points
    13 312
    Par défaut
    L'une ou l'autre des deux solutions ne donnent rien

  4. #4
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    salut,

    peux tu enlever le newline ("\n") aux appels de la fonction header ? tes echos ne devraient pas venir avant les headers à moins d'avoir modifier le comportement du output buffering.

  5. #5
    Expert éminent sénior

    Avatar de snake264
    Homme Profil pro
    Datascientist chez Leboncoin
    Inscrit en
    Novembre 2006
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Datascientist chez Leboncoin
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 914
    Points : 13 312
    Points
    13 312
    Par défaut
    Même si j'enlève les "\n" et tous les "echo" ça donne la même chose. J'ai que du binaire qui s'affiche :

    PKC}#?tatrobus-corrige/PKPKC}#?4tatrobus-corrige /C_CHOUETTE_transporteur_2_27383.rdf͘A��@���Ľ�a f��Ɛح�i�ݠ{&Tg-)��1�ܽ�V�hqa@�&��Ǽo潱�S��GM���U}/Z.էH �J� �M�S��lj16 J����.����q��n.Wn��Kn)�,RGQ��j��sw��؄ѯK˲<��3���ώ=� �Y:hU!�l6�Ƙ�a�� cL����h�ԍ��pw��NlW� u��b��_tu��wi�FeP9�4A0K~s�`����$�o�0 co�(���E�"�ӏ��\��Y �'|Z��WE���z�ǻ�y����ҭ�c݇��g��p�&Nǧx�����s��Μ;Cw��S

  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 665
    Points : 188 673
    Points
    188 673
    Par défaut
    Vu que tu ne fais qu'afficher le contenu du ZIP dans ton script, il est peut-être possible de faire un simple header('Location: .zip');.

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Content-Type: x/y
    x/y ?

  8. #8
    Expert éminent sénior

    Avatar de snake264
    Homme Profil pro
    Datascientist chez Leboncoin
    Inscrit en
    Novembre 2006
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Datascientist chez Leboncoin
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 914
    Points : 13 312
    Points
    13 312
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    x/y ?
    Oui si on met ça le navigateur est sensé reconnaître le type MIME avec l'extension du fichier.

    @Thibaut : ça change rien

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par snake264 Voir le message
    sensé
    met le MIME correct, comme ça tu seras sûr au moins

  10. #10
    Expert éminent sénior

    Avatar de snake264
    Homme Profil pro
    Datascientist chez Leboncoin
    Inscrit en
    Novembre 2006
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Datascientist chez Leboncoin
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 914
    Points : 13 312
    Points
    13 312
    Par défaut
    Ok, mais il n'y a aucune différence si je le spécifie ou non

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par snake264 Voir le message
    Ok, mais il n'y a aucune différence si je le spécifie ou non
    met le quand même, fait un exit après ton readfile, les fins d’entêtes c'est \r\n pas \n, met un Content-Type: application/force-download au pire

  12. #12
    Expert éminent sénior

    Avatar de snake264
    Homme Profil pro
    Datascientist chez Leboncoin
    Inscrit en
    Novembre 2006
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Datascientist chez Leboncoin
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 914
    Points : 13 312
    Points
    13 312
    Par défaut
    Cela ne change toujours rien

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/12/2014, 13h51
  2. Impossible de télécharger le fichier zip.
    Par capitaina dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 31/12/2009, 02h22
  3. Impossible de télécharger des fichiers depuis mon serveur
    Par amine55555 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 12/05/2007, 14h15
  4. Impossible de Télécharger les fichiers joints
    Par Rabie de OLEP dans le forum Internet
    Réponses: 1
    Dernier message: 27/04/2007, 10h17
  5. Télécharger un fichier Zip depuis une adresse internet
    Par jmjmjm dans le forum Web & réseau
    Réponses: 8
    Dernier message: 18/10/2005, 19h12

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