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

ASP.NET Discussion :

Response.AddHeader pas de download sur safari


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2011
    Messages : 28
    Par défaut Response.AddHeader pas de download sur safari
    Bonjour,

    J'essais de faire marcher le download d'un fichier sur safari et rien à faire, la fenêtre s'ouvre mais la boite de dialogue ouvrir/enregistrer/annuler ne s'affiche pas.

    Le 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
    35
     
                //vide le buffer
                Response.Clear();
                //utilise un buffer de sortie
                Response.BufferOutput = true;
     
                // demande ouvrir enregistrer annuller
                Response.AddHeader("Content-Disposition", "inline; filename=" + Server.HtmlEncode(fileName));
                // ajoute au header la longueur du fichier
                Response.AddHeader("Content-Length", excelFile.Length.ToString());
                // la page expire dessuite
                Response.Expires = 0;
                // retire les informations en cache
                Response.ExpiresAbsolute = DateTime.Now;
                // désactive le cache
                Response.Cache.SetNoStore();
                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                Response.CacheControl = "no-cache";
     
     
                // Format Excel 2007
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
     
                //Response.OutputStream.Write(excelFile, 0, excelFile.Length);
                for (int i = 0; i < excelFile.Length; i++)
                {
                    // écriture byte à byte du flux de sortie
                    Response.OutputStream.WriteByte(excelFile[i]);
                }
                // envoie de toutes les sorties bufferisées au client
                Response.Flush();
                // ferme le socket de connexion 
                Response.Close();
                // envoie le EndRequest event
                Response.End();
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Par défaut
    Bonjour

    As tu essayé Response.WriteFile(fileName), tout simplement ?


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2011
    Messages : 28
    Par défaut
    Bonjour,

    J'ai essayé toutes les méthodes write, j'ai gardé celle-ci car j'ai un tableau de byte à envoyer. (ça m'évite des conversions)

    Ca marche sous IE, Firefox, pas sous Safari.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur ASP.Net - disponible pour des missions
    Inscrit en
    Septembre 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur ASP.Net - disponible pour des missions

    Informations forums :
    Inscription : Septembre 2008
    Messages : 151
    Par défaut
    Bonjour,

    as-tu regardé dans la fenêtre de téléchargement

    je suis sur mac, et safari n'ouvre pas de fenêtre comme avec IE Safari ou Chrome

    pour avoir la fenêtre il faut personnaliser Safari (click droit dans la barre)

    Cordialement

  5. #5
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2011
    Messages : 28
    Par défaut
    Bonjour,

    J'ai vérifié la fenêtre de téléchargement, le fichier ne s'y trouve pas.

    Il doit y avoir quelque chose dans le Header qui ne va pas pour safari car ça marche sur mac avec firefox.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur ASP.Net - disponible pour des missions
    Inscrit en
    Septembre 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur ASP.Net - disponible pour des missions

    Informations forums :
    Inscription : Septembre 2008
    Messages : 151
    Par défaut
    Bonjour,

    j'ai repris ton header que j'ai collé dans une de mes procédures (sauf l'encodage du nom du fichier)

    j'exporte un gridview dans un tableau (via la classe gridviewexportutil que tu peux trouver sur le net)
    le téléchargement a bien fonctionné

    la différence c'est que j'envoi via un write, mais à mon avis ça doit pas joué, à tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HttpContext.Current.Response.Write("xxxx");

Discussions similaires

  1. Response.AddHeader pas de download sur safari
    Par Nico1383 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 09/03/2012, 09h09
  2. Pourquoi mon frame ne fonctionne pas sur Safari 3.0.4?
    Par joecool2005 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/02/2008, 17h36
  3. Réponses: 1
    Dernier message: 28/03/2007, 19h20
  4. Réponses: 2
    Dernier message: 28/03/2007, 18h50
  5. [javascript] Ne fonctionne pas sur Safari
    Par sanosuke85 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/03/2007, 09h20

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