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 :

[Système] Problème pour forcer un telechargement et IE


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 10
    Points
    10
    Par défaut [Système] Problème pour forcer un telechargement et IE
    En fait mon problème ne se produit uniquement avec Internet Explorer.

    J'ai un bout de code php qui force le telechargement d'un fichier .log qui est créer par un script perl qui est executé sur le serveur distant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    elseif (isset($_REQUEST['telecharger'])){
    	$telecharger = $_REQUEST["telecharger"];		// $telecharger est un tableau
    	$fichier = "./$telecharger[0]";
    	$nomFichier = "$telecharger[0]";
    	$tailleFichier = filesize($fichier);
    		//echo "nom du fichier passé au script : $fichier";
    	header('Content-Type: application/octet-stream');
    	header("Content-Length: $tailleFichier");
    	header("Content-Disposition: attachment; filename=\"$nomFichier\"");
    	readfile($fichier);
    }
    En fait le champ telecharger passer en paramètre vient d'un formulaire et est un tableau de bouton radio et comporte le nom du fichier à telecharger.

    Le problème (qui ne se produit pas sous Firefox) est que lors du telechargement, IE me change le nom du fichier de log et le propose sous le format : erreur_xxxxxxxxxxx[1].TXT.log (edit : Firefox me fait la meme chose sous la forme erreur_xxxxxxxxxx.TXT-1.log)alors que je voudrais le nom original : erreur_xxxxxxxxxx.TXT.log

    si vous savez comment m'aider je vous remercie d'avance.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 394
    Points : 15 755
    Points
    15 755
    Par défaut
    le changement de nom se produit seulement si tu demandes d'ouvrir le fichier
    si tu choisis de l'enregsitrer sur le disque, c'est bien le nom que tu proposes qui sera utilisé

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Hélas j'aimerais bien que cela ne se passe que dans ces cas là car je n'ai justement besoin que de les telecharger.

    Cependant avec IE, lorsque je souhaite le telecharger, il me rajoute automatiquement le [1].

    Je pense que se problème vient du cache de IE qui garde en mémoire le fichier telechargé et lorsque je veux le telecharger une seconde fois, comme le fichier est déjà présent dans son cache, il y rajoute le [1] pour différencier les 2 fichiers.

    il faudrait donc que je force le telechargement avec écrasement du fichier si possible.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 288
    Points : 123
    Points
    123
    Par défaut
    Alors moi je force le telechargement en mettant un lien vers une page "download.php" ayant pour parametre le fichier a telecharger, le lien aura donc cette allure:

    <a href=download.php?dwn=xxxxx.log>Telecharger</a>

    Voila le contenu du fichier download.php

    <?
    header("content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=".$_GET["dwn"]);
    flush();
    readfile($_GET["dwn"]);
    ?>

    A savoir que tu ne change pas de page, le visiteur ne se retrouve pas sur la page Download.php

Discussions similaires

  1. [Système] Problème pour forcer un téléchargement
    Par Spaeda dans le forum Langage
    Réponses: 2
    Dernier message: 25/09/2006, 10h02
  2. [Système] Problème pour lancer un exécutable
    Par zackrel dans le forum Langage
    Réponses: 2
    Dernier message: 29/05/2006, 08h21
  3. [Configuration] problème pour forcer le téléchargement d'un fichier
    Par All Bran dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 02/01/2006, 16h23
  4. [Système] Problème pour effectuer des calculs
    Par tissard dans le forum Langage
    Réponses: 10
    Dernier message: 09/12/2005, 14h07
  5. [Système]Problème pour lancer l'appli au démarrage
    Par CVERRIER3 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 23/11/2005, 16h07

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