Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

webbrowser et varbinary

11 réponses
Avatar
nans31
Bonjour,

J'ai stocké un fichier en varbinary dans sqlserver.
Dans mon programme je le récupère en byte[] et je l'ai converti en string
afin de pouvoir l'integrer dans un webbrowser. or dans le webbrowser cela ne
m'affiche rien.

voici mon code :
byte[] t = document.Document;
string dest = t.ToString();
webBrowser1.Navigate(dest);

merci.

10 réponses

1 2
Avatar
Gilles Kohl [MVP]
On Thu, 20 Mar 2008 02:55:01 -0700, nans31
wrote:

Bonjour,

J'ai stocké un fichier en varbinary dans sqlserver.
Dans mon programme je le récupère en byte[] et je l'ai converti en string
afin de pouvoir l'integrer dans un webbrowser. or dans le webbrowser cela ne
m'affiche rien.

voici mon code :
byte[] t = document.Document;
string dest = t.ToString();
webBrowser1.Navigate(dest);



Quel encodage utilisez-vous lors du stockage?

Essayez par example

string dest = Encoding.Default.GetString(t);

Amicalement,
Gilles.
Avatar
nans31
Voila le code avec lequel j'ai pu stocker mon fichier :
FileStream fs = new FileStream(chemin,FileMode.Open,FileAccess.ReadWrite);
BinaryReader br = new BinaryReader(fs);
byte[] img = br.ReadBytes((int)fs.Length);

Par contre je ne sais pas à quel type d'encodage ca correspond ...
J'ai essayé ce que vous m'aviez dit mais ca ne marche pas ca m'affiche une
fenetre windows live search mais pas mon pdf.

"Gilles Kohl [MVP]" a écrit :

On Thu, 20 Mar 2008 02:55:01 -0700, nans31
wrote:

>Bonjour,
>
>J'ai stocké un fichier en varbinary dans sqlserver.
>Dans mon programme je le récupère en byte[] et je l'ai converti en string
>afin de pouvoir l'integrer dans un webbrowser. or dans le webbrowser cela ne
>m'affiche rien.
>
>voici mon code :
>byte[] t = document.Document;
>string dest = t.ToString();
>webBrowser1.Navigate(dest);

Quel encodage utilisez-vous lors du stockage?

Essayez par example

string dest = Encoding.Default.GetString(t);

Amicalement,
Gilles.




Avatar
Gilles Kohl [MVP]
On Fri, 21 Mar 2008 01:21:01 -0700, nans31
wrote:

Voila le code avec lequel j'ai pu stocker mon fichier :
FileStream fs = new FileStream(chemin,FileMode.Open,FileAccess.ReadWrite);
BinaryReader br = new BinaryReader(fs);
byte[] img = br.ReadBytes((int)fs.Length);

Par contre je ne sais pas à quel type d'encodage ca correspond ...
J'ai essayé ce que vous m'aviez dit mais ca ne marche pas ca m'affiche une
fenetre windows live search mais pas mon pdf.



Pour autant que je sache, WebBrowser.Navigate attend un URL, non un fichier.
J'ai l'impression que vous téléchargez un fichier, le stockez dans la banque
de données, et ensuite essayez de le réafficher?

Pour ce, il vous faudra soit sauvegarder l'URL d'origine (c.a.d par exemple
"http://www.lesite.fr/chemin/lefichier.pdf") et le fournir à nouveau au
fureteur, ou alors le sauvegarder dans un répertoire temporaire local, et
fournir le nom complet (répertoir+fichier) comme URL au fureteur.

Amicalement,
Gilles.

Regards,
Gilles [MVP].

(Please reply to the group, not via email.
Find my MVP profile with past articles / downloads here:
http://www.gilleskohl.de/mvpprofile.htm)
Avatar
nans31
En fait quand je fais le code suivant donc avec un fichier qui existe deja ca
marche :
string dest = @"C:exemple.pdf";
webBrowser1.Navigate(dest);

Mais alors pour ecrire un fichier à partir d'un varbinary et pour le
sauvegarder dans un repertoire , j'ai essayé ce code :
File.WriteAllBytes("C:exemple.pdf", t); où t est mon tableau de
bytes(bytes[] t)

Mais ca ne marche pas. Ca me crée bien le fichier mais quand je l'ouvres ca
me met probleme de decodage le type de fichier n'est pas pris en charge.


"Gilles Kohl [MVP]" a écrit :

On Fri, 21 Mar 2008 01:21:01 -0700, nans31
wrote:

>Voila le code avec lequel j'ai pu stocker mon fichier :
>FileStream fs = new FileStream(chemin,FileMode.Open,FileAccess.ReadWrite);
> BinaryReader br = new BinaryReader(fs);
> byte[] img = br.ReadBytes((int)fs.Length);
>
>Par contre je ne sais pas à quel type d'encodage ca correspond ...
>J'ai essayé ce que vous m'aviez dit mais ca ne marche pas ca m'affiche une
>fenetre windows live search mais pas mon pdf.

Pour autant que je sache, WebBrowser.Navigate attend un URL, non un fichier.
J'ai l'impression que vous téléchargez un fichier, le stockez dans la banque
de données, et ensuite essayez de le réafficher?

Pour ce, il vous faudra soit sauvegarder l'URL d'origine (c.a.d par exemple
"http://www.lesite.fr/chemin/lefichier.pdf") et le fournir à nouveau au
fureteur, ou alors le sauvegarder dans un répertoire temporaire local, et
fournir le nom complet (répertoir+fichier) comme URL au fureteur.

Amicalement,
Gilles.

Regards,
Gilles [MVP].

(Please reply to the group, not via email.
Find my MVP profile with past articles / downloads here:
http://www.gilleskohl.de/mvpprofile.htm)



Avatar
Gilles Kohl [MVP]
On Fri, 21 Mar 2008 08:40:09 -0700, nans31 wrote:

En fait quand je fais le code suivant donc avec un fichier qui existe deja ca
marche :
string dest = @"C:exemple.pdf";
webBrowser1.Navigate(dest);

Mais alors pour ecrire un fichier à partir d'un varbinary et pour le
sauvegarder dans un repertoire , j'ai essayé ce code :
File.WriteAllBytes("C:exemple.pdf", t); où t est mon tableau de
bytes(bytes[] t)

Mais ca ne marche pas. Ca me crée bien le fichier mais quand je l'ouvres ca
me met probleme de decodage le type de fichier n'est pas pris en charge.



Hmm, difficile a dire ce qui est le probleme ici - avez-vous comparé le fichier original
avant stockage avec celui que vous récupérez de la banque de données? Est-ce que la taille
reste la même? Le contenu? Qu'utilisez vous pour stocker le fichier?

Amicalement,
Gilles.
Regards,
Gilles [MVP].

(Please reply to the group, not via email.
Find my MVP profile with past articles / downloads here:
http://www.gilleskohl.de/mvpprofile.htm)
Avatar
nans31
En fait c'est bon le code suivant marche
:File.WriteAllBytes("C:exemple.pdf", t);
Je sais pas où était l'erreur car je n'ai rien modifié mais ca marche, ouf
je suis soulagée merci !

Par contre j'ai voulu reprendre ce que vous m'aviez dit :
string dest = Encoding.Default.GetString(t); où t est un tableau de bytes
et maintenant j'ai comme erreur "La valeur n'est pas comprise dans la plage
attendue" lorsqu'il est sur webBrowser1.Navigate(dest);
J'insiste sur ce point mais peut etre y a-t-il une solution?

Je voulais aussi savoir si en utilisant le type image au lieu de varbinary
dans sql server c'était plus interessant parce que j'ai vu que le type image
prenait des pdf.

Merci pour toutes vos réponses! :)


"Gilles Kohl [MVP]" a écrit :

On Fri, 21 Mar 2008 08:40:09 -0700, nans31 wrote:

>En fait quand je fais le code suivant donc avec un fichier qui existe deja ca
>marche :
>string dest = @"C:exemple.pdf";
>webBrowser1.Navigate(dest);
>
>Mais alors pour ecrire un fichier à partir d'un varbinary et pour le
>sauvegarder dans un repertoire , j'ai essayé ce code :
>File.WriteAllBytes("C:exemple.pdf", t); où t est mon tableau de
>bytes(bytes[] t)
>
>Mais ca ne marche pas. Ca me crée bien le fichier mais quand je l'ouvres ca
>me met probleme de decodage le type de fichier n'est pas pris en charge.

Hmm, difficile a dire ce qui est le probleme ici - avez-vous comparé le fichier original
avant stockage avec celui que vous récupérez de la banque de données? Est-ce que la taille
reste la même? Le contenu? Qu'utilisez vous pour stocker le fichier?

Amicalement,
Gilles.
Regards,
Gilles [MVP].

(Please reply to the group, not via email.
Find my MVP profile with past articles / downloads here:
http://www.gilleskohl.de/mvpprofile.htm)



Avatar
Gilles Kohl [MVP]
On Tue, 25 Mar 2008 02:56:01 -0700, nans31
wrote:

En fait c'est bon le code suivant marche
:File.WriteAllBytes("C:exemple.pdf", t);
Je sais pas où était l'erreur car je n'ai rien modifié mais ca marche, ouf
je suis soulagée merci !

Par contre j'ai voulu reprendre ce que vous m'aviez dit :
string dest = Encoding.Default.GetString(t); où t est un tableau de bytes



et maintenant j'ai comme erreur "La valeur n'est pas comprise dans la plage
attendue" lorsqu'il est sur webBrowser1.Navigate(dest);
J'insiste sur ce point mais peut etre y a-t-il une solution?



À ce moment je croyais que vous stockiez des URL, alors que ce sont les
fichiers binaires eux-mêmes, cela ne marchera pas de cette facon avec
WebBrowser.Navigate.

Je voulais aussi savoir si en utilisant le type image au lieu de varbinary
dans sql server c'était plus interessant parce que j'ai vu que le type image
prenait des pdf.



Je pense que le type varbinary est plus nouveau (et flexible?) que image, mais
c'est une question mieux posée aux experts dans un group destiné à SQL Server
ou ADO.NET, pas au language C#.

Amicalement,
Gilles.

Regards,
Gilles [MVP].

(Please reply to the group, not via email.
Find my MVP profile with past articles / downloads here:
http://www.gilleskohl.de/mvpprofile.htm)
Avatar
Gilles TOURREAU [MVP]
Bonjour,

Par simple curiosité, comment créez vous votre tableau de byte "t" ?

Cordialement

--
Gilles TOURREAU - MVP C#


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr


"nans31" a écrit dans le message de
news:
En fait quand je fais le code suivant donc avec un fichier qui existe deja
ca
marche :
string dest = @"C:exemple.pdf";
webBrowser1.Navigate(dest);

Mais alors pour ecrire un fichier à partir d'un varbinary et pour le
sauvegarder dans un repertoire , j'ai essayé ce code :
File.WriteAllBytes("C:exemple.pdf", t); où t est mon tableau de
bytes(bytes[] t)

Mais ca ne marche pas. Ca me crée bien le fichier mais quand je l'ouvres
ca
me met probleme de decodage le type de fichier n'est pas pris en charge.


"Gilles Kohl [MVP]" a écrit :

On Fri, 21 Mar 2008 01:21:01 -0700, nans31

wrote:

>Voila le code avec lequel j'ai pu stocker mon fichier :
>FileStream fs = new
>FileStream(chemin,FileMode.Open,FileAccess.ReadWrite);
> BinaryReader br = new BinaryReader(fs);
> byte[] img = br.ReadBytes((int)fs.Length);
>
>Par contre je ne sais pas à quel type d'encodage ca correspond ...
>J'ai essayé ce que vous m'aviez dit mais ca ne marche pas ca m'affiche
>une
>fenetre windows live search mais pas mon pdf.

Pour autant que je sache, WebBrowser.Navigate attend un URL, non un
fichier.
J'ai l'impression que vous téléchargez un fichier, le stockez dans la
banque
de données, et ensuite essayez de le réafficher?

Pour ce, il vous faudra soit sauvegarder l'URL d'origine (c.a.d par
exemple
"http://www.lesite.fr/chemin/lefichier.pdf") et le fournir à nouveau au
fureteur, ou alors le sauvegarder dans un répertoire temporaire local, et
fournir le nom complet (répertoir+fichier) comme URL au fureteur.

Amicalement,
Gilles.

Regards,
Gilles [MVP].

(Please reply to the group, not via email.
Find my MVP profile with past articles / downloads here:
http://www.gilleskohl.de/mvpprofile.htm)





Avatar
nans31
Pour créer mon tableau de bytes j'ai ecrit : bytes[] t;

"Gilles TOURREAU [MVP]" a écrit :

Bonjour,

Par simple curiosité, comment créez vous votre tableau de byte "t" ?

Cordialement

--
Gilles TOURREAU - MVP C#


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr


"nans31" a écrit dans le message de
news:
> En fait quand je fais le code suivant donc avec un fichier qui existe deja
> ca
> marche :
> string dest = @"C:exemple.pdf";
> webBrowser1.Navigate(dest);
>
> Mais alors pour ecrire un fichier à partir d'un varbinary et pour le
> sauvegarder dans un repertoire , j'ai essayé ce code :
> File.WriteAllBytes("C:exemple.pdf", t); où t est mon tableau de
> bytes(bytes[] t)
>
> Mais ca ne marche pas. Ca me crée bien le fichier mais quand je l'ouvres
> ca
> me met probleme de decodage le type de fichier n'est pas pris en charge.
>
>
> "Gilles Kohl [MVP]" a écrit :
>
>> On Fri, 21 Mar 2008 01:21:01 -0700, nans31
>>
>> wrote:
>>
>> >Voila le code avec lequel j'ai pu stocker mon fichier :
>> >FileStream fs = new
>> >FileStream(chemin,FileMode.Open,FileAccess.ReadWrite);
>> > BinaryReader br = new BinaryReader(fs);
>> > byte[] img = br.ReadBytes((int)fs.Length);
>> >
>> >Par contre je ne sais pas à quel type d'encodage ca correspond ...
>> >J'ai essayé ce que vous m'aviez dit mais ca ne marche pas ca m'affiche
>> >une
>> >fenetre windows live search mais pas mon pdf.
>>
>> Pour autant que je sache, WebBrowser.Navigate attend un URL, non un
>> fichier.
>> J'ai l'impression que vous téléchargez un fichier, le stockez dans la
>> banque
>> de données, et ensuite essayez de le réafficher?
>>
>> Pour ce, il vous faudra soit sauvegarder l'URL d'origine (c.a.d par
>> exemple
>> "http://www.lesite.fr/chemin/lefichier.pdf") et le fournir à nouveau au
>> fureteur, ou alors le sauvegarder dans un répertoire temporaire local, et
>> fournir le nom complet (répertoir+fichier) comme URL au fureteur.
>>
>> Amicalement,
>> Gilles.
>>
>> Regards,
>> Gilles [MVP].
>>
>> (Please reply to the group, not via email.
>> Find my MVP profile with past articles / downloads here:
>> http://www.gilleskohl.de/mvpprofile.htm)
>>



Avatar
Gilles TOURREAU [MVP]
"nans31" a écrit dans le message de
news:

Pour créer mon tableau de bytes j'ai ecrit : bytes[] t;




Bonjour,

Ok,
Et pour l'instancier ?

Cordialement

--
Gilles TOURREAU - MVP C#


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
1 2