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 :

Téléchargement de fichier généré (Incompatibilité IE ?)


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Par défaut Téléchargement de fichier généré (Incompatibilité IE ?)
    Bonjour, j'ai tenté de trouver une réponse dans le forum, mais je n'ai pas trouvé (mal cherché ?). Je vous soumets donc mon problème car ça fait une journée de retard que je prends sur mon projet et je devrais passer à autre chose...

    Mon code est le suivant :
    <?php
    @ob_end_clean();
    @ini_set('zlib.output_compression', 'Off');
    @ini_set('output_buffering', 'Off');
    header('Pragma: public');
    header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
    header('Cache-Control: must-revalidate, pre-check=0, post-check=0');
    header('Content-Transfer-Encoding: none');
    header('Content-Type: application/vnd.ms-excel; name="'.$_POST["reportname"].'.xls"');
    header('Content-Disposition: attachement; filename="'.$_POST["reportname"].'.xls"');
    header('Content-Length: '.strlen($_POST['file']));
    require_once("dbconnect.php");
    require_once("functions.php");
    require_once("user.php");
    session_start();
    if ((!isset($_SESSION["userdata"])) || (!$_SESSION["userdata"]->connected)) {
    echo('Not allowed.');
    exit;
    } else {
    if (isset($_POST['file'])) {
    echo($_POST['file']);
    } else {
    echo('No file to submit.');
    exit;
    }
    }
    ?>

    C'est le résultat de plusieurs tests qui ne fonctionnent toujours pas. Les symptômes sont les suivants :
    - Avec easyPHP 1.8, le téléchargement de fichier fonctionne très bien sous tout navigateur.
    - Une fois dans l'environnement de travail en https, ce même code ne fonctionne pas sous IE mais sous Mozilla oui.

    Je pensais à des différences entre les deux php.ini d'où mon output buffering au départ du script, et je peux donner le diff si vous pensez que cela peut vous aider. Je ne vois pas d'où peut venir le problème...

    Merci d'avance,
    Morty

  2. #2
    Membre chevronné
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Par défaut
    Pour les fichiers il ne faut pas plutot utiliser $_FILES[] plutot que $_POST[] ???

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Par défaut
    En réalité le contenu de ma variable $_POST['file'] correspond à des données séparées par des ; directement importables dans Excel. Ce n'est pas un fichier, juste un contenu.

    Précision supplémentaire : seconde différence entre les deux environnements. Le mien est en PHP4, le distant est en PHP5...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Par défaut
    Sous IE j'obtiens une boîte m'indiquant que je vais télécharger un fichier excel dont le nom est "send_file_php" au lieu de "report2006.xls" et qui est bien sûr introuvable lorsque l'on clique sur le lien.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Par défaut
    <?php
    @ob_end_clean();
    @ini_set('zlib.output_compression', 'Off');
    header("Cache-Control: ");
    header("Pragma: ");
    header("Content-Type: application/octet-stream");
    header("Content-Length: " .strlen($_POST['file']));
    header('Content-Disposition: attachment; filename="'.$_POST['reportname'].'.xls"');
    header("Content-Transfer-Encoding: binary\n");
    echo($_POST['file']);
    ?>

    En supprimant pas mal de choses ça passe. Même si ce n'est pas ce que je souhaitais, ça fonctionne.

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

Discussions similaires

  1. Téléchargement de fichier généré
    Par kimjoa dans le forum Zend Framework
    Réponses: 3
    Dernier message: 30/09/2009, 14h35
  2. Téléchargement de fichier
    Par casafa dans le forum Web & réseau
    Réponses: 21
    Dernier message: 18/06/2009, 23h34
  3. [http] Accéder à un fichier généré par un serveur
    Par Seiya dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 27/02/2007, 18h10
  4. Réponses: 5
    Dernier message: 23/01/2007, 10h10
  5. [SOAP][XML][C#.NET] Téléchargement de fichiers XML
    Par juniorAl dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/06/2005, 09h35

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