2009-09-04 9 views
5

J'ai un objet de type IMAGE qui contient une image. Je voulais afficher l'image en mode MVC avec d'autres commandes. La façon dont je peux penser est de stocker temporairement l'image sur le disque et définir src de contrôle img. Je suis sûr qu'il y aurait une meilleure façon de le faire.Afficher l'image de l'objet IMAGE dans MVC

Répondre

2

Vous pouvez écrire un gestionnaire pour diffuser des images, puis référencer le streamer dans votre tag d'image. Par exemple, vous avez http://myapp/media.ashx?imageId=10 diffuser l'image. Dans votre page vous référencez comme si: <img src="http://myapp/media.ashx?imageId=10"/>.

De cette façon, vous n'avez pas besoin d'écrire temporairement sur le disque.

1

Vous pouvez afficher votre image en tant que contenu de réponse d'une action du contrôleur. cette réponse aura le type d'image comme type de contenu.

4

Le moyen le plus facile de le faire à mon avis serait de retourner un FileStreamResult de votre contrôleur.

public FileResult GetImage() 
{ 
    string path = "c:\images\image.jpg"; 
    return new FileStreamResult(new FileStream(path, FileMode.Open), "image/jpeg"); 
} 

Ceci est une implémentation simple, mais vous donne un point de départ pour ce que vous essayez de faire.

4

Si vous êtes intéressé par la mise en œuvre @Giovanni's réponse, alors j'ai un code qui peut être utile à partir d'une réponse passée, j'ai donné here. La classe ImageHandler est un exemple de ce que vous voudriez implémenter dans le cas de Giovanni.

0

Vous pouvez convertir l'image en chaîne Base64 et l'affecter à l'attribut src de la balise img.

<img alt="Embedded Image" width="168" height="32" 
    src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgA..." /> 

http://www.greywyvern.com/code/php/binary2base64

Questions connexes