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 :

Télécharger un fichier puis changer de page


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 91
    Points : 67
    Points
    67
    Par défaut Télécharger un fichier puis changer de page
    Bonjour à tous,

    Je cherche désespérément à téléchager un fichier (du serveur vers le poste du client) puis changer de page.
    Pour le téléchargement j'utilise Response.TransmitFile
    Si je fais un Response.Redirect tout de suite derrière, le téléchargement du fichier ne se fait pas.
    peut-être que je n'utilise pas les bonnes méthodes ?

    Merci de votre aide

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Je te suggère d'utiliser un header de redirection :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.AddHeader("Refresh", "10; url=default.aspx");

    Dans cet exemple, l'utilisateur sera redirigé au bout de 10 secondes vers la page default.aspx.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 91
    Points : 67
    Points
    67
    Par défaut
    Merci.
    J'ai essayé mais ça ne fonctionne pas ...

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    C'est-à-dire ? Qu'as-tu fait ? "Ca marche pas", ça ne veut rien dire.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 91
    Points : 67
    Points
    67
    Par défaut
    J'ai essayé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Response.ContentType = "application/force-download";
    Response.AddHeader("Refresh", "10; url=Home.aspx"); 
    Response.AppendHeader("Content-disposition", "attachment; filename=" + fileName);
    Response.TransmitFile(filePath);
    J'ai également essayé avec la méthode AppendHeader.
    J'ai essayé de placer la ligne de code juste avant ou juste après le TransmitFile et le résultat est toujours le même : Le téléchargement du fichier à lieu mais la redirection ne se fait pas.

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Merci pour ces précisions

    Après quelques recherches, il n'est effectivement pas possible de rediriger + télécharger un fichier dans une seule et même requête HTTP. Cependant il existe une solution qui consiste à :
    1. Mettre le code de téléchargement du fichier dans un fichier ASHX (ASP.NET HTTP Handler)
    2. Sur la page Web de téléchargement, mettre une iFrame qui pointe vers ce fichier ASHX (ce qui va provoquer le téléchagement du fichier)
    3. Dans le header de la page Web de téléchargement, mettre la ligne de code qui ajoute la redirection, afin de rediriger l'utilisateur après x secondes
    Est-ce que cette solution peut convenir à ta problématique ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 91
    Points : 67
    Points
    67
    Par défaut
    Bonjour et merci pour ces recherches :-)
    Je pense toutefois que cette solution ne me servirai pas dans le cas présent car :
    - le fichier que je télécharge n'est pas toujours le même donc je ne pense pas pouvoir mettre le code de téléchargement en dur dans un fichier annexe
    - le ficher à télécharger est plus ou moins lourd, donc je ne peux pas déterminer à l'avance le nombre de secondes à attendre avant la redirection.
    (Mais je garde ça dans mes dossiers car ça pourrait servir dans un autre cas)

    J'avais trouvé un moyen de rediriger via Javascript au bout de x secondes mais pour la raison citée plus haut le résultat de me satisfaisait pas.

    Au final j'ai "résolu" mon problème en le contournant mais je suis quand même déçue de ne pas avoir trouvé la solution ...
    C'est mon tout premier projet Web donc j'ai encore beaucoup de choses à apprendre, je ne désespère pas

    Merci pour ton aide

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/08/2007, 16h24
  2. Téléchargement de fichier puis ouverture d'une page sur un clic
    Par gy0m76 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 04/12/2006, 12h32
  3. Réponses: 2
    Dernier message: 10/10/2006, 09h11
  4. Réponses: 2
    Dernier message: 19/12/2005, 13h15

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