voila mon pb :
j'ai un fichier text que je passe dans un tableau de byte pour enregistrer dans une bdd.
Puis je veux le recuperer, je recupere donc mon tableau de byte, mais comment faire pour le repasser en fichier texte ???
en vous remerciant
voila mon pb :
j'ai un fichier text que je passe dans un tableau de byte pour enregistrer dans une bdd.
Puis je veux le recuperer, je recupere donc mon tableau de byte, mais comment faire pour le repasser en fichier texte ???
en vous remerciant
Salut !
C'est en WebForms ou en WinForms ?
Si c'est en Webforms, j ai une idée. Je stocke moi aussi des documents dans une base de données en binaire, pour les recupérer je mets directement dans le flux de lecture de la reponse http (drDoc est mon SqlDataReader, 'docContenu' est au format binaire):
Par contre, si c est du winforms je ne sais pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if ((int)drDoc["DocTaille"]>0) // Positionne le contenu du document dans le flux de sortie de la réponse http. Response.OutputStream.Write((byte[]) drDoc["DocContenu"], 0, (int) drDoc["DocTaille"]);
Bon courage pour la suite. :o
cool merci
et si je veux n'afficher sur ma page que le texte ?
en fait, j'ai une page en fin d'appi qui dis : machin, download effectuer, cliquer la pour voir le fichier de log"
et quand je fais ta methode, ca me rajoute le fichier de log sur ma page, si je ne veux afficher que le fichier de log |???
Tu veux dire ouvrir le fichier sur une nouvelle page quand tu cliques sur voir c est ça ?
ben ouais.. je sais, je suis un boulet.. masi chhhhhhhhhhhhhut, faut pas le dire..! ;-)
Non tu as raison (en + je fais pareil ). Lors du clics sur "voir" tu rediriges vers une page aspx sans controles dessus, et dans le page_load, tu mets le code permettant la lecture du fichier texte.
Tu passes le paramètre identifiant du fichier à la page qui l'ouvre et voilà! :o
Tu récupères l identifiant dans la page ViewDoc.aspx
Code : Sélectionner tout - Visualiser dans une fenêtre à part Response.Redirect("~/ViewDoc.aspx?doc=" + DocId);
Et après tu fais l appel à la base, tu recuperes le contenu et tu l affiches dans le flux (je te mets le code complet que j utilise).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if (Request.Params["DocId"] != null) { docId = Int32.Parse(Request.Params["DocId"]);}
Voilà. En espérant que ça te sera utile.
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 SqlDataReader drDoc =GetDocContent(docId); drDoc.Read(); // Récupère le nom du fichier pour le positionner dans l'entete de la réponse. Response.AppendHeader("content-disposition","filename=" + (String)drDoc["DocNomFichier"]); // Positionne le type de contenu pour que le document puisse // être affiché par la réponse http. Par exemple "application/msword". typeContenu = (String) drDoc["DocTypeContenu"]; if (typeContenu == "") typeContenu= "text/HTML"; Response.ContentType = typeContenu; if ((int)drDoc["DocTaille"]>0) // Positionne le contenu du document dans le flux de sortie de la réponse http. Response.OutputStream.Write((byte[]) drDoc["DocContenu"], 0, (int) drDoc["DocTaille"]); // Fin de la réponse. drDoc.Close(); Response.End(); }
Bon courage pour la suite. :o
carton, en te remerkiant...
Partager