Je ne sais pas si ceci est proche ou non.
Je crée un champ d'image dans les événements de la table de base de données à l'aide du code pour un début, je ne suis même pas sûr s'il devrait être une chaîne.
Je tente alors d'ajouter l'image à la base de données à l'aide du code P> et une fois que cela est ajouté, j'essaie de l'afficher dans un Je crée le répéteur code> à l'aide du code: p> répéteur Code> dans asp.net à l'aide du code p>
7 Réponses :
Si votre image est enregistrée comme base de données de chaîne64, la base de données doit ressembler à: "Données: image / png; base64, dataimage". Sinon, vous devez convertir votre tableau d'octets (image en octets) dans la base de données64 et écrire sur la banque ainsi: "Données: image / png; base64, dataimage". P>
où les donnéesImage seront les données de conversion. Dans ASP.NET, vous devriez utiliser Convert.Tobase64String (octet []). P>
Merci pour cela bien que je le comprends, je ne sais pas comment la mettre en œuvre dans mon code
Suivez ci-dessous étapes,
Dans la base de données, vous devriez avoir, p> déclarer comme, p> Changer lors de l'enregistrement, P> Image1.ImageUrl = "~/ShowImage.ashx?id=" + id;
Merci pour ça. Lorsque j'essaie d'enregistrer l'image sous forme d'octet [], il apparaît dans la base de données en tant que varbinary et quand je le change à une image, il apparaît toujours comme un varbinaire
Définissez le type de données de colonne d'image en tant qu'image et enregistrez la table.
Merci. J'ai essayé cela et l'enregistré, mais cela convertit toujours le type de données en arrière à Varbinary, même si je l'ai sauvé
Je n'ai pas compris lorsque vous dites que cela convertit le type de données, signifie qu'il convertit le type de données de la colonne de base de données?
L'utilisation d'une chaîne est bonne. Je vous recommande de sauvegarder le chemin virtuel de l'image dans la base de données; ce qui signifie que le chemin .NET peut résoudre à un chemin physique sur votre serveur. E. g.
~ / images / myImage.png p> blockquote>
où "images" est un dossier de la racine de votre projet .NET. p>
alors vous pouvez afficher l'image à l'aide de p>
xxx pré> p>
Si image Enregistrer dans votre solution
<%# Eval("EvtImage", "~/{0}") %>
dans le code derrière écrire une méthode appelée et aussi une classe: p> puis pour afficher ces images que vous avez deux choix. Vous pouvez utiliser N'oubliez pas de Modifiez le < Strong> Enfin STRUT>: Pour tester ce code, vous pouvez créer un nouveau dossier dans votre projet et ajouter des images à cela dans votre base de données dans la colonne Collection () code> pour récupérer des images et d'autres champs comme une liste d'événements tels que ci-dessous (il est également préférable d'utiliser
à l'aide des déclarations code> ):
asp: répéteur code> avec un
asp: objetdatasource code> comme ceci: p>
webapplication1 code> dans le document code> au nom de votre projet et
WebForm8 code> au nom de votre page. p>
EvTimage CODE> Stockez-les comme ceci:
\ Newfolder1 \ YourfirspicinnewFolder.png code> et .... Si vous faites ces étapes, vos images doivent être affichées à côté des autres champs du répéteur code>. P> p>
juste une mise à jour. J'ai utilisé Varbinary à la fin. J'ai ajouté l'image à la base de données en utilisant
<img runat="server" id="imageTest" src="imageIDtagName" />
Lorsque vous convertissez en base64, il entraînera une grande chaîne. Il va donc ralentir l'application, mieux aller avec Cette solution a >
Vous pouvez enregistrer le fichier image en tant que chaîne indiquant le chemin de l'image étant enregistré dans le dossier du serveur.
Ceci est mon implémentation en utilisant MVC, vous devrez peut-être un peu de modification, mais je pense que la plupart des pièces sont . la même chose p>
la page de Vue: p>
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Create(YourViewModel model) { var imgName = Path.GetFileName(model.EvtImage.FileName); var img = new Bitmap(model.EvtImage.InputStream); var imgPath = ""; // combine file name of event image and the folder path in server imgPath = Path.Combine(Server.MapPath("~/Images/Uploads/YourEventName"), imgName); img.Save(imgPath); cmd.Parameters.AddWithValue("@EvtImage", imgPath); // the rest of your implementation .... }
Comment vous attendez-vous à obtenir un URL i> d'un blob stocké dans la base de données? En outre, vous ne montrez pas le code que charge i> les données de la base de données.
Il semble que vous enregistrez le nom de fichier image dans dB, cela implique que vous devez enregistrer une image quelque part dans l'emplacement hébergé, dites /img/file.png code>, si ce qui précède est vrai, alors vous venez de Besoin d'apporter un chemin d'image sur celui récupéré de la DB.
Quel chemin que vous économisez dans votre DB?