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 :

Forcer le téléchargement d'un fichier sans utiliser le Response


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut Forcer le téléchargement d'un fichier sans utiliser le Response
    Bonjour,

    je développe une application qui génère un fichier excel au format xml et qui lance le téléchargement de ce fichier une fois généré.

    Pour ça j'utilise la fonction ScriptManager.RegisterStartupScript qui m’exécute une commande javascript windows.open avec l'url du fichier, chez moi aucun problème il me propose de télécharger le fichier ou de l'ouvrir par contre chez le client il ouvre directement le fichier dans le navigateur et donc le client voit le code xml du fichier.

    Je ne peux pas utiliser la fonction Response.write() qui me soulève une erreur à cause de control dans la page (style updatepanel).
    Je voulais donc savoir s'il était possible de forcer le téléchargement d'un fichier en javascript.

    PS: Le client utilise IE7 ou IE8 avec excel 2003.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Je ne peux pas utiliser la fonction Response.write() qui me soulève une erreur à cause de control dans la page (style updatepanel).
    As tu essayé de faire dans le Page_Load :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ScriptManager myScriptMgr = ScriptManager.GetCurrent(this.Page);
    myScriptMgr.RegisterPostBackControl(cmdButton);

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    merci pour l'aide mais même avec ça j'ai toujours une erreur si j’utilise la méthode response.write

    j'ai une erreur de type
    PageRequestManagerParserErrorException
    j'ai des contrôles personnalisé qui utilise de l'ajax et donc qui m'empêche d'utiliser la méthode response.write

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Bizarre...
    J'ai une situation quasi simulaire de génération d'un document (pdf) pour ensuite le télécharger alors que je suis dans un updatePanel avec aussi des contrôles perso ajaxifié.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     public void Download()
    {
         FileInfo file = new FileInfo(myFilePath);
         Response.Clear();
         Response.AddHeader("Content-Disposition", "attachment; filename=myFile.pdf");
         Response.AddHeader("Content-Length", file.Length.ToString());
         Response.ContentType = "application/octet-stream";
         Response.WriteFile(file.FullName);
         Response.Flush();
         Response.Close();
    }

  5. #5
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ScriptManager myScriptMgr = ScriptManager.GetCurrent(this.Page);
    myScriptMgr.RegisterPostBackControl(cmdButton);
    doit se faire automatiquement au page_load ? parce que mon contrôle n'est pas encore crée à ce moment là

  6. #6
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    au temps pour moi ça fonctionne j'avais enregistré le mauvais bouton, j'avais en faite enregistré mon contrôle image button qui appelait une fonction javascript alors que c'était le linkbutton appelé par cette fonction javascript qu'il fallait que j'enregistre.

    Merci pour ton aide précieuse.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/02/2010, 07h16
  2. Réponses: 4
    Dernier message: 13/06/2007, 15h27
  3. Decompression d'un fichier sans utiliser les modules du CPAN
    Par choubiroute dans le forum Modules
    Réponses: 6
    Dernier message: 10/03/2006, 14h20
  4. forcer le téléchargement - problème ouverture fichier
    Par grinder59 dans le forum Langage
    Réponses: 8
    Dernier message: 09/03/2006, 15h59
  5. [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

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