Charger une image a partir d'une base de données

Résolu
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 - 29 mars 2005 à 19:18
jra518 Messages postés 1 Date d'inscription dimanche 18 mai 2008 Statut Membre Dernière intervention 9 juin 2008 - 9 juin 2008 à 15:32
Alors voila, je sais, vous allez me dire que il y a des posts qui parlent de ça mais j'ai été les voir et rien ne ressemble à ce que je fais ou du moins g pas compris LOL (désolé, il en faut non?)

Je récupèe mon image à partir d'une base de données Sql Server 2000 dans un sqlDataReader et à partir de là je bloque sur plein de points :
- d'une part, j'ai positionner un image à partir de visual studio .net 2003 sur un page aspx, et là impossible d'écrire dans l'image (pas de propriété ou du moins, g pas vu). Et je veux forcément afficher l'image dans une page web aspx (je suis chiant je sais).
- d'autre part, tous les posts à ce sujet ne donne que le chargement d'une image sur une nouvelle page ou ne sont pas en ASP.Net (du moins, il sont du genre VB). Moi, je suis plutot version C#.

J'arrive à récupérer le tableau de bytes à partir de l'image chargée de la base de données dans byte[] Image. Mais la je c pas comment faire pour:
- soit charger dans mon objet image qui est créé au préalable sur la page
- soit créer une image et l'insérée dans la page

(Pour info, ma requête est du type SELECT Image FROM Table_Image WHERE PK_Image='une valeur')

Il me manque que ça, alors si vous savez comment faire à partir de:
- sqlDataReader RD (d'ailleurs je c pas comment faire, moi je fais RD.GetBytes(0) )
- ou un tableau de byte[]
c'est du bon pour moi !

Merci beaucoup à tous ceux qui se seront déjà donné la peine de lire,

Bonne soirée !

Billou_13
Bask En Force

14 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
29 mars 2005 à 20:17
dans un image.aspx tu fais un



response.clear

response.addheader("image/jpeg")



response.write(tableaudebyte)



response.flush

response.close



Je crois que c'est un truc comme ca, mais ca fait tres longtemps que j'ai pas fait ca ...


<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
3
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
30 mars 2005 à 13:06
Je pense que tu aurais besoin de quelques sur le HTML :) pour lier une
image à une page HTML tu dois utiliser une balise



pour les menus etc.. regarde du coté des user controls, j'ai expliqué plusieurs fois sur le forum comment ca marchait.

<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
3
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
30 mars 2005 à 17:49
Un ascx c'est un morceau de page, c'est pas une page complete, mais
c'est la meme chose. Ca a le meme comportement qu'une page sauf qu'on
ne peut pas les afficher directement il faut passer par l'intermediaire
d'une page



Or toi pour les imageil faut que tu ecrives le contenu de l'image, les
bytes directement dans la sortie, et que celle soit visible toute
seule, il faut donc faire une page image.aspx

apres il faut faire un response.clear pour supprimer tout ce qui
correspond a une page web, en effet toi c'est pas une page web que tu
as mais une image ...



Comme tu n'es pas la premiere personne qui me pose la question, je vais peut etre faire une source la dessus :)


<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
30 mars 2005 à 00:22
oki, merci beaucoup, je vais tester ça !

Mais j'ai peur d'un truc. Est-ce que ta solution n'est pas pour une image dans une nouvelle page ? Car moi, je veux que ce soit une image qui est sur une page deja rempli ou je place un objet image.

D'ailleurs, a ce sujet la, le response.(quelque chose) place les resultats ou ca ??? dans une nouvelle page, ou tu peux choisir ?

Je c que la question doit etre bidon, mais j'ai du me mettre à l'ASP.NET vite fait en une journée aujourd'hui (d'habitude, je suis un développeur C# et je connais plutot le console.write LOL)

Bonne nuit à tous et merci,

Billou_13
Bask En Force
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
30 mars 2005 à 00:28
Non c'est evidemment pas possible de mettre une image directement dans le code html de la page.



Comment ferais tu pour mettre ton image ? ou l'enregistrait tu ? tu es obligé de faire un

<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
30 mars 2005 à 09:18
Non, ce que je veux dire est que lorsque tu créé une application
ASP.Net, tu as la possibilité de placer des images avec les outils dans
ta page aspx. Dans ce cas, tu image ne s'ouvre pas toute seule sur un
page internet comme quand tu clique sur une image sur une page web pour
l'agrandir. Tu l'as plutot intégré à ta page.

En fait, ce que je veux faire, en prenant un
exemple est simple. C'est comme si l'image de nos avatars était dans
une base de données et que je voulais la charger lorsque tu ouvre un
post du forum CSSource. C'est tout simple!

Mais, mon problème vient lorsque tu place une image à l'aide de
la barre d'outils dans visual studio .net 2003 en ASP.net. Tu n'as
alors pas accès à l'image créée dans ton code de programmation, à moins
de faire pointer l'image sur un lien url. Donc c'est a ce niveau la que
je bloque !



Bonne journée,

Billou_13
Bask En Force
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
30 mars 2005 à 10:34
Bon alors, voila g trouvé ma petite solution : je vais la mettre ici :

seulement, le petit problème est que lorsque l'on place un
Response.(quelquechose), on efface toute la page web et toute la petite
présentation que l'on a fait à l'aide de visual studio .Net 2003 (genre
des labels, des champs de saisie ...) disparraissent.



Je voudrais savoir s'il existe pas un truc du genre :

- je place mon image avec l'id "Map" et après au lieu de faire Response.BinaryWrite(), je met Map.BinaryWrite(). Merci



Voici le code :



private void Page_Load(object sender, System.EventArgs e)

{

// Placer ici le code utilisateur pour initialiser la page

if (Session["PK_Image"]!=null)

{

MapLabel.Text="Image";


sqlConnection.ConnectionString = "Persist Security
Info=False;"

+"User ID=MapClient;"

+"Initial Catalog=BDD;"

+"Data Source=127.0.0.1;"

+"Packet Size=4096;"

+"Workstation ID=127.0.0.1;";



try

{

sqlConnection.Open();

string Request = "SELECT Image "


+ "FROM
Table_Image "


+ "WHERE
PK_Image="+Session["PK_Image"];


sqlCommand.Connection = sqlConnection;

sqlCommand.CommandText = Request;




SqlDataReader RD =
sqlCommand.ExecuteReader();



if(RD.Read())

{


byte[]
ImageByte = new byte[50000];





RD.GetBytes(0,0,ImageByte,0,50000);





Response.BinaryWrite(ImageByte);







Result.Text =
"Map Loaded";

}

else

{


Result.Text =
"Map failed";

}



RD.Close();



sqlConnection.Close();

}

catch(Exception Error)

{


Result.Text="Erreur:
"+Error.Message;

}

}

else Response.Redirect("notfound.aspx");

}


Voila, mon problème vient du fait que tout mes MapLabel.text ,
Result.Text ne serve plus a rien car la fenêtre que je créé sous Visual
Studio .NET est écrasée par le Response.BinaryWrite().Alors, si vous
avez une solution, vous me sauvez !



Merci, et bonne journée


Billou_13
Bask En Force
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
30 mars 2005 à 10:50
Oui c'est normal !!!



Tu peux pas faire ce que tu veux, pour mettre une image dans une page
il faut la faire pointer quelque part, tu peux pas ecrire une image
directement dans le flux html.



regarde les avatars, je suis sur que l'url pointent vers une page aspx avec un ID

<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
30 mars 2005 à 12:55
oki, merci dans ce cas la, je dois charger l'image dans une page aspx. Si je comprend bien alors, il faudrait que je fragmente ma page web en page aspx (à la style frames mais mieux) et alors je pourrais incorporer mon image dans ma page web.

Est ce que vous avez de bons tutoriaux ou autres pour savoir comment fragmenter un page web en pages aspx. Mais surtout, une fois les pages créées, comment faire pour mettre un barre sur le coté (comme Cssource.fr) et que des que l'on clique sur un lien du menu, pour faire charger la page dans une autre frame ("aspx"). Je sais pas comment pointer un page aspx. Si vous avez des trucs, je veux bien ?

En tout cas merci beaucoup a toi jesusonline, ca fait plaisir d'avoir du soutient comme ca ! Merci encore et bonne après midi

Billou_13
Bask En Force
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
30 mars 2005 à 15:44
Alors la, g vraiment un gros problème. J'ai beau allez voir tout sur les usercontrol, ca ne marche pas.



Je rajoute une page .ascx en faisant projet/ajouter un controle
utilisateur web . La je met mon code que je vous ai présenté plus haut
dans le page_Load



Ensuite, sachant que mon image sera en bas à droite de ma page, je créé
un tableau de 4 cases et dans la case du bas à droite, j'ai tester deux
trucs :

- L'histoire avec ne marche pas (même en spécifiant dans l'entête de la page ascx que c'est une image gif.

- Et d'autre part, j'ai tester, à l'aide d'une page trouvée sur le net, l'ajout direct dans le HTML d'une entête

<%@ Register TagPrefix="HPPH" TagName="MonImage" src="image.ascx" %>

et en mettant dans la case du bas a droite du tableau,
<HPPH:MonImage id="M" runat="server"> . Et cette fois, mon image
écrase tout le tableau ! et s'affiche sur toute la page



Alors, la je c vraiment plus quoi faire et c'est la misère, je penser
que la création d'une page ascx m'aurait permis d'avoir un composant
que je met n'importe ou sur la page.



La je dis au sercours SVP Comment faire ??? !!!





Merci,




Billou_13
Bask En Force
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
30 mars 2005 à 15:52
Mon gros problème vient du fait que je ne peux pas stocker les images
sur le disques dur car elles sont uniquement et ne peuvent être que
dans ma base de données. J'ai trouvé un composant pour visual studio
qui permet de le faire mais il est payant. Donc c'est que c'est
possible, de charger une image et l'afficher à l'intérieur d'une page.
Mais la je bloque

Billou_13
Bask En Force
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
30 mars 2005 à 17:27
Hourra !!!!!!!!



J'ai enfin trouvé. Je sais pas pourquoi mais ca ne marchait pas avec une page .ascx.



La solution : Mon code est bon et doit etre mis dans une page .aspx

Il suffit de passer par une page .aspx ou on créé un objet image qui a
comme url la page .aspx qui contient. C'est tout bête, mais j'ai qd
même mis l'après midi à trouvé LOL

Billou_13
Bask En Force
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
30 mars 2005 à 18:41
Merci beaucoup à toi !



Par contre, je suis lancé maintenant mais j'ai quelque problème avec
les .ascx . Lorsque l'on créé un .ascx, on ne peut pas mettre librement
des objets à l'intérieur.



Je t'explique, je fais un site qui sera séparer en trois. Je fais donc
un tableau de 2 lignes dont un ligne (celle du haut) comporte deux
colonnes.



Ainsi, j'aurai une image en haut a gauche, le menu en haut a droite et le corps de ma page en bas.



Seulement, je n'arrive pas a faire pointer les cases du tableau sur des
pages .aspx . Seules les .ascx fonctionnent. Néanmoins, on n'est pas
libre de créer un page .ascx avec un bouton par ci, un label par la, un
textbox a un autre endroit ...



Je voudrais savoir alros quelle serait ta solution ?



Merci et bonne soirée a toi,

Billou_13
Bask En Force
0
jra518 Messages postés 1 Date d'inscription dimanche 18 mai 2008 Statut Membre Dernière intervention 9 juin 2008
9 juin 2008 à 15:32
comment veut faire etablir une connection aprtir d'une autre server
0
Rejoignez-nous