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 :

Download d'un fichier .jar via PHP


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 17
    Points
    17
    Par défaut Download d'un fichier .jar via PHP
    bonjour,

    je veux télécharger une petite appli java de mon site avec les appels suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    header('Content-Description: File Transfer');
    header('Content-Disposition: attachment; filename="'.$nom_fic.'"');
    header('Content-Type: application/octet-stream;java-archive; name="'.$nom_fic."'");
    header('Content-Transfer-Encoding:  none');
    header('Content-Length: '.filesize($chemin.$nom_fic));
    header('Expires: 0');
    header('Pragma: o-cache');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    readfile($chemin.$nom_fic);
    exit();
    le probleme est que lors de la tentative d'ouverture de l'appli java j'ai un message "corrupted file"
    l'appli fonctionne normalement lorsque je la telecharge directement via ftp (Filezilla)
    mais avec le code ci-dessus rien à faire
    le fichier reçu a la meme taille que celui sur le serveur à l'octet pret.

    par avance merci

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu es sûr de ton content-type ? Personnellement, j'aurais plutôt utilisé : header('Content-Type: application/java-archive; name="'.$nom_fic."'"); (sans le "octet-stream")
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    merci je vais tester et tenir au courant

  4. #4
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    toujours le même problème malgré la modification

  5. #5
    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
    Vérifie que ton fichier .php est bien encodé sans BOM s'il est en UTF8.
    Tu peux ouvrir tes fichier .jar avec un editeur de texte pour voir s'ils se ressemblent bien.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    merci pour la piste
    en comparant les deux fichiers l'original qui fonctionne est en ansi et s'affiche correctement avec notepad++
    par contre le téléchargé indique UTF-8 w/o BOM et seule une ligne texte apparait mon problème vient de mon entete http ou de mon php.ini ????

  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
    Comment ça une seule ligne apparait ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    le fichier jar sur le site web fonctionne aussi, c'est lors du téléchargement que le problème semble se produire

    lors du téléchargement il fait une cure d'amaigrissement de 800ko à 104 octets !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                    header('Content-Description: File Transfer');
                    header('Content-Disposition: attachment; filename="'.$nom_fic.'"');
                    header('Content-type; application/java-archive; name="'.$nom_fic.'"');
                    header('Content-Transfer-Encoding:  none');
                    header('Content-Length: '.filesize($chemin.$nom_fic));
                    header('Expires: 0');
                    header('Pragma: o-cache');
                    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
                    readfile($chemin.$nom_fic);
                    exit();
    merci pour votre aide voici une entete http qui fonctionne !
    moralité en http au moins on en écrit et au mieux ça marche ...!
    pour être plus précis la ligne qui pose probleme est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     header('Content-Length: '.filesize($fic));
    ce qui a certainement un lien avec BOM

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                    header('Content-Description: File Transfer');
                    header('Content-Type: application/java-archive; charset="UTF-8"');
                    header('Content-Disposition: attachment; filename="'.$nom_fic.'"');            
                    readfile($fic);
                    exit();
    encore merci

  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
    lors du téléchargement il fait une cure d'amaigrissement de 800ko à 104 octets !!
    Tu nous as dit que le fichier telechargé était identique à l'octet pres.

    Tu as changé de version ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-Length: '.filesize($fic));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-Length: '.filesize($chemin.$nom_fic));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    oui mais $fic = $chemin.$nom_fic dans mon code
    c'est manifestement l'indication de la taille du fichier qui pose problème (mais je ne sais pas pourquoi)
    j'ai modifié mon code en remplaçant $fic par $chemin.$nom_fic qui est plus lisible

  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 concernant le fait qu'au debut les deux fichiers étaient identiques à l'octet pres et plus maintenant ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    avec la nouvelle entete il me telecharge la totalité du jar et j'avoue ne pas saisir l'ensemble des subtilités du http ...
    l'entete fonctionne mais je ne comprends pas cette différence de comportement entre les les 2 entetes
    je vais progressivement ajouter les lignes de la premiere entete (sauf la taille) pour voir si le comportement est stable

  13. #13
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    voici une version plus verbeuse qui fonctionne mais avec Content-Length en commentaire ! :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                   header('Content-Description: File Transfer');
                    header('Content-Type: application/java-archive; charset="UTF-8"');
                    header('Content-Disposition: attachment; filename="'.$nom_fic.'"');
                    header('Content-Transfer-Encoding: binary');
                    header('Connection: Keep-Alive');
                    header('Expires: 0');
                    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
                    header('Pragma: public');
    //              header('Content-Length: '.filesize($chemin.$nom_fic));
                    readfile($chemin.$nom_fic);
                    exit();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. accès à des fichiers uniquement via php
    Par 3akycka dans le forum Langage
    Réponses: 10
    Dernier message: 28/03/2011, 20h53
  2. Réponses: 1
    Dernier message: 10/01/2008, 13h52
  3. [Upload] Lecture de fichier mp3 via PHP
    Par nodogeid dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2007, 12h00

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