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

Autres langages pour le Web Discussion :

Forcer l'upload de fichier -> Firefox OK mais IE coince


Sujet :

Autres langages pour le Web

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 37
    Points
    37
    Par défaut Forcer l'upload de fichier -> Firefox OK mais IE coince
    Bonjour,

    Je dois pour une application intranet forcer le téléchargement d'un fichier résultat. Ca marche au poil avec Firefox (comme d'hab). Mais je tombe sur un os avec Internet Explorer. Je veux via un script cgi écrit en shell forcer le téléchargement d'un fichier.

    Mon script ressemble a ca :

    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
    #!/bin/bash
    #
    case `uname -s` in
      Linux    ) UDIR=/home ;;
      *        ) UDIR=/u    ;;
    esac
    
    file=$QUERY_STRING
    
    echo "Content-Type: application/force-download"
    echo "Content-Disposition: attachment; filename=$file"
    echo "Content-Transfer-Encoding: binary"
    echo "Pragma: no-cache"
    echo "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
    echo "Expires: 0"
    echo
    
    /bin/cat $UDIR/navi/html/$file
    Si je vais sur http://monadresse/cgi-bin/download.cgi?bla.lyd ca ne marche pas avec IE. Il commence bien le téléchargement mais impossible d'aller plus loin. Il me dit qu'il ne peut pas enregistrer download.cgi?bla.lyd

    Si quelqu'un a une idée ... d'avance merci. Ah oui une précision, j'ai un impératif, c'est le shell, pas le droit d'utiliser du PHP (ca serait trop facile ... )

    Je sais que ce n'est pas très secure mais pour le moment je n'en suis qu'aux tests ...

    D'avance un grand merci,

    Gédéon

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Bonjour,

    Peut-être ton souci se situe-t-il au niveau des retours chariots ? Sous windows ( et donc sous IE ? ) le retour chariot est codé CR+LF, alors que sous unix c'est uniquement un LF, il se peut donc que IE soit perdu dans les déclarations d'headers.
    K

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 37
    Points
    37
    Par défaut
    Merci pour ta réponse.

    Donc j'ai pris en compte ce que tu me disais, j'ai donc tenté de faire ca en C++ et même problème : Firefox ok et IE not ok
    Voici la partie du code concernant l'affichage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        cout << "Content-Type&#58; application/force-download\r\n" ;
        cout << "Content-Disposition&#58; attachment; filename=" << work_string << "\r\n" ;
        cout << "Content-Transfer-Encoding&#58; binary\r\n" ;
        cout << "Pragma&#58; no-cache\r\n" ;
        cout << "Cache-Control&#58; no-store, no-cache, must-revalidate, post-check=0, pre-check=0\r\n" ;
        cout << "Expires&#58; 0\r\n" ;
        cout << "\r\n" ;
    C'était une bonne idée mais visiblement ce n'est pas la source de mon problème. Et je continue à ramer sans jamais voir la terre

  4. #4
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Ah dommage..

    Peut-être ton fichier est-il trop gros ? Il me semble que IE n'autorise pas les transferts supérieur à une limite dont je ne me souviens plus

    Une autre piste : voici les headers utilisé par un gars en PHP, et qui marchent bien pour lui, peut-être en as-tu oublié un necessaire ( Content-Length? )

    Il y a aussi le fait qu'il met le nom du fichier entre guillemets, peut-être celà aussi pose problème ?

    Autre chose : l'ordre des commandes, peut-être est-il important ? Pour un de mes scripts PHP j'ai utilisé ce code ( je ne l'ai pas sous la main ) et ça marchait bien, après c'est du PHP et tu n'en fais pas, mais ça peut t'aider à résoudre ton problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    header&#40;"Pragma&#58; public"&#41;;
    header&#40;"Expires&#58; 0"&#41;;
    header&#40;"Cache-Control&#58; must-revalidate, post-check=0, pre-check=0"&#41;;
    header&#40;"Cache-Control&#58; private",false&#41;;
    header&#40;"Content-Type&#58; application/octet-stream"&#41;;
    header&#40;"Content-Disposition&#58; attachment; filename=\"".$filename."\";"&#41;;
    header&#40;"Content-Transfer-Encoding&#58; binary"&#41;;
    header&#40;"Content-Length&#58; ".$size&#41;;
    K

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 37
    Points
    37
    Par défaut
    Merci beaucoup KiLVaiDeN grace a toi mon problème est résolu. C'était bien les guillemets dans le nom du fichier !!


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

Discussions similaires

  1. [PHP 5.2] Problème upload de fichier avec accent et firefox
    Par dedesite dans le forum Langage
    Réponses: 6
    Dernier message: 15/06/2011, 12h15
  2. Réponses: 1
    Dernier message: 24/05/2008, 05h57
  3. Réponses: 4
    Dernier message: 22/05/2007, 18h40
  4. Réponses: 5
    Dernier message: 23/12/2006, 15h55
  5. [Upload] Problème upload de gros fichiers avec Firefox
    Par the rootsm@n dans le forum Langage
    Réponses: 12
    Dernier message: 19/02/2006, 20h43

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