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échargement de fichier du serveur vers le poste du client


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2006
    Messages : 60
    Points : 41
    Points
    41
    Par défaut Téléchargement de fichier du serveur vers le poste du client
    Bonjour,

    j'essaie de mettre cela en place chez moi, mais ça ne fonctionne pas ! J'ai l'impression que mon fichier est seulement chargé dans le cache du navigateir.
    Je souhaiterais que le navigateur me propose d'enregistrer le fichier sur mon poste.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    byte[] fileinByte = monDoc.DocumentActuel;
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + monDoc.Libelle);
    Response.ContentType = "application/octet-stream";
    Response.OutputStream.Write(fileinByte, 0, fileinByte.Length);    
    Response.Flush();
    Pouvez vous m'indiquez ce qui ne va pas dans mon code.

    Merci,

    En attente de vous lire en retour

    2berte

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    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 : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Tu peux déjà commencer par parcourir cette discussion: http://www.developpez.net/forums/d94...-piece-jointe/

    A+

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2006
    Messages : 60
    Points : 41
    Points
    41
    Par défaut
    Merci pour ta réponse,

    Mais je n'ai pas réussi faire fonctionner avec cette méthode. Je suis passé par une autre qui comporte plusieurs étapes :
    1 - création d'un dossier temporaire
    2 - requettage en base pour récupérer le contenu de mon doc
    3 - création du fichier avec le contenu
    4 - redirection vers ce document qui propose automatiquement le téléchargement

    Ce n'est surement pas la meilleur méthode, mais ça fonctionne.

    Par contre j'ai un souci, lorsque l'utilisateur télécharge des fichiers de la suite office 2007 (.xlsx, .pptx, .docx etc). Ceux-ci sont automatiquement en archive ZIP avec IE, il faut juste changer l'extension pour retrouver le fichier d'origine. Mais ceux-ci n'est pas concevable pour un utilisateur lambda.
    Alors qu'avec Firefox, Opéra, le téléchargement propose le fichier dans sa bonne extension.

    Y-a t-il un moyen pour remédier à ce problème lié à IE?

    Pour info, je ne peux proposer ce document sous autre formats...

    En attente de vous lire en retour,

    Cordialement

    2berte

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Points : 194
    Points
    194
    Par défaut
    Bonjour,

    Si j'ai bien compris, vous voulez récupérer un fichier distant et pouvoir le télécharger ?

    En fait, si votre fichier se trouve sur un répertoire virtuel d'un serveur web, il suffit de mettre votre url + le nom de votre fichier dans une balise html < a href>.
    Et quand vous cliquer sur le lien, par défaut le navigateur vous demandera de télécharger le fichier.

    Sinon utilisez ce code pour le download :

    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
     
    String strFilepath ="URL de votre fichier";
                    Uri uri = new Uri(strFilepath);
                    HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(uri);
                    myRequest.KeepAlive = false;
                    myRequest.Proxy = null;
                    WebRequest req = WebRequest.Create(uri);
                    WebResponse response = req.GetResponse();
                    Stream fStream = response.GetResponseStream();
                    MemoryStream memStream = new MemoryStream();
                    byte[] buffer = new byte[2048];
     
                    int bytesRead = 0;
                    do
                    {
                        bytesRead = fStream.Read(buffer, 0, buffer.Length);
                        memStream.Write(buffer, 0, bytesRead);
                    } while (bytesRead != 0);
                    fStream.Close();
                    fStream.Dispose();
                    buffer = memStream.ToArray();
    la variable buffer contient les données de votre fichier.

  5. #5
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    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 : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par 2berte Voir le message
    Y-a t-il un moyen pour remédier à ce problème lié à IE?
    C'est surtout lié au fait que tu ne précises pas le type de fichier.

    Peut-être devrais-tu suivre ce post: http://www.developpez.net/forums/d94...lien-gridview/

    A+

Discussions similaires

  1. Envoyer des fichiers du serveur vers plusieurs postes
    Par alucia dans le forum Windows Communication Foundation
    Réponses: 7
    Dernier message: 31/08/2012, 16h30
  2. [VB.net] copie de fichier d'un serveur vers un poste local
    Par junoreactor dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/11/2006, 19h54
  3. Transférer fichier de serveur vers presse-papier
    Par gilleluc dans le forum Applets
    Réponses: 2
    Dernier message: 02/10/2006, 02h15
  4. copier fichier du serveur vers le client fso
    Par nigiri dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/02/2006, 13h26
  5. [Indy] Transfert de fichiers du serveur vers le client
    Par Nicodemus dans le forum Web & réseau
    Réponses: 4
    Dernier message: 28/10/2005, 17h00

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