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


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut [RESOLU]Téléchargement de fichier
    Bonjour, j'ai besoin de proposer une fonctionnalité pour enregistrer un fichier csv où le souhaite l'utilisateur.

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    FileInfo fI = new FileInfo("C:\\art.csv");
                .......
                Response.Clear();
                Response.ContentType = "application/vnd.ms-excel"; 
                Response.AddHeader("Content-Disposition", "attachment; filename=" + fI.Name);
                aR.GenerateReport(article, fI.FullName);
                Response.WriteFile(fI.FullName);
                Response.End();
    Tout marche, le problème c'est qu'ainsi je passe par un fichier sur C: et je ne trouve pas cela top... Ce que je voudrais c'est créer le fichier directement à l'emplacement choisi par l'utilisateur.
    Quelqu'un a t-il une solution?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Tu peux passer par un MemoryStream et faire un Response.WriteBytes(...) (de mémoire)
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    ben utilise un OpenFileDialog...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut
    Euh OpenFileDialog en webform...?

    Bon sinon j'ai réussi en utilisant un MemoryStream.
    Il me reste un problème à régler: le ficheir csv généré ne prend pas en compte le changement de cellule alors que les tabulations sont bien présentes.
    La faute à un problème d'encodage, en effet en éditant le fichier avec Notepad++, en le convertissant en UCS-2, le fichier devient correct...

    Donc comment convertir de l'ANSI en UCS-2 en code-behind??
    Ou comment contourner mon problème?

    J'ai déja essayé en utilisant unicode, l'ascii, Default en encoding, ...

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par diddy95 Voir le message
    Euh OpenFileDialog en webform...?
    Ah pardon, j'avais pas vu

    Citation Envoyé par diddy95 Voir le message
    Donc comment convertir de l'ANSI en UCS-2 en code-behind??
    Ou comment contourner mon problème?

    J'ai déja essayé en utilisant unicode, l'ascii, Default en encoding, ...
    Tu peux obtenir un encodage spécifique avec Encoding.GetEncoding :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Encoding ucs2 = Encoding.GetEncoding("ucs-2")
    Par contre, pas sûr qu'il soit connu sous ce nom par le système... donc il faut tâtonner un peu pour trouver son vrai nom, ou afficher toute la liste des encodages avec Encoding.GetEncodings()

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut
    Merci pour ta réponse.
    Voici la liste des encodages obtenues avec getEncodings:

    ASMO-708; big5; cp1025; cp866; cp875; csISO2022JP; DOS-720; DOS-862; EUC-CN; euc-jp; EUC-JP; euc-kr; GB18030; gb2312; hz-gb-2312; IBM00858; IBM00924; IBM01047; IBM01140; IBM01141; IBM01142; IBM01143; IBM01144; IBM01145; IBM01146; IBM01147; IBM01148; IBM01149; IBM037; IBM1026; IBM273; IBM277; IBM278; IBM280; IBM284; IBM285; IBM290; IBM297; IBM420; IBM423; IBM424; IBM437; IBM500; ibm737; ibm775; ibm850; ibm852; IBM855; ibm857; IBM860; ibm861; IBM863; IBM864; IBM865; ibm869; IBM870; IBM871; IBM880; IBM905; IBM-Thai; iso-2022-jp; iso-2022-jp; iso-2022-kr; iso-8859-1; iso-8859-13; iso-8859-15; iso-8859-2; iso-8859-3; iso-8859-4; iso-8859-5; iso-8859-6; iso-8859-7; iso-8859-8; iso-8859-8-i; iso-8859-9; Johab; koi8-r; koi8-u; ks_c_5601-1987; macintosh; shift_jis; unicodeFFFE; us-ascii; utf-16; utf-32; utf-32BE; utf-7; utf-8; windows-1250; windows-1251; Windows-1252; windows-1253; windows-1254; windows-1255; windows-1256; windows-1257; windows-1258; windows-874; x-Chinese-CNS; x-Chinese-Eten; x-cp20001; x-cp20003; x-cp20004; x-cp20005; x-cp20261; x-cp20269; x-cp20936; x-cp20949; x-cp50227; x-EBCDIC-KoreanExtended; x-Europa; x-IA5; x-IA5-German; x-IA5-Norwegian; x-IA5-Swedish; x-iscii-as; x-iscii-be; x-iscii-de; x-iscii-gu; x-iscii-ka; x-iscii-ma; x-iscii-or; x-iscii-pa; x-iscii-ta; x-iscii-te; x-mac-arabic; x-mac-ce; x-mac-chinesesimp; x-mac-chinesetrad; x-mac-croatian; x-mac-cyrillic; x-mac-greek; x-mac-hebrew; x-mac-icelandic; x-mac-japanese; x-mac-korean; x-mac-romanian; x-mac-thai; x-mac-turkish; x-mac-ukrainian;

    dsl ca en fait je sais

    Quelqu'un sait-il auquel correspond le fameux UCS-2 Little Endian de Notepad ++?

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    en fait c'est UTF-16
    http://en.wikipedia.org/wiki/UCS-2

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut
    Alala toujours le même problème quoi qu'il arrive le fichier ressort avec comme encodage ANSI..

    Voici un condencé de mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Encoding enc = Encoding.GetEncoding("utf-16");
    Response.Clear();
    Response.ContentEncoding = enc;
    Response.ContentType = "text/csv"; 
    Response.AddHeader("Content-Disposition", "attachment; filename=" + Article.csv);
    byte[] theBytes = enc.GetBytes(content);//content est un string contenant toutes les cellules séparées par des \t
    Response.BinaryWrite(theBytes);
    Response.End();
    help?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 14
    Par défaut
    Bon bah j'ai grugé, j'ai changé mon caractère de séparation en ';' (avant c'était TAB) et maintenant bien sure le problème d'encodage ne se pose plus.
    Bref, j'ai rusé mais bon le but c'est que cela marche.
    Voila comment perdre du temps pour pas grand chose...

    En tout ca merci à ceux qui ont essayé de m'aider.

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

Discussions similaires

  1. Téléchargement de fichier
    Par casafa dans le forum Web & réseau
    Réponses: 21
    Dernier message: 18/06/2009, 23h34
  2. Réponses: 5
    Dernier message: 08/12/2005, 20h13
  3. Téléchargement de fichiers par HTTP / FTP
    Par Gladiator dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 07/12/2005, 11h28
  4. Réponses: 5
    Dernier message: 05/11/2005, 17h53
  5. [SOAP][XML][C#.NET] Téléchargement de fichiers XML
    Par juniorAl dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/06/2005, 09h35

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