04 maggio 2010

Script: Mostrare una immagine tramite ASP.NET MVC

Esempio di un controller MVC per le immagini, in modo da gestire richieste di questo tipo:

http://<mywebsite>/image/show/3


Di seguito il controller per gestire la richiesta:


public class ImageController : Controller
{
// gestore del repository delle immagini
private IPhotoService _photoService;

protected override void Initialize( RequestContext requestContext )
{
if( _photoService == null ) _photoService = new DiskFilePhotoService();

base.Initialize( requestContext );
}

public ActionResult Show( int id )
{
// recupera le informazioni dell'immagine che vogliamo visualizzare in base all'id della stessa
PhotoInfo photoInfo = _photoService.GetById( id );

// generazione del percorso dove si trova l'immagine
string imagePath = Service.MapPath( String.Format( "~/Images/{0}", photoInfo.FileName ) );

// visualizza l'immagine
return base.File( imagePath , getImageContentType( imagePath );
}

// recupera in corretto content type dell'immagine da visualizzare
private string getImageContentType( string filename )
{
FileInfo file = new FileInfo( filename );

switch( file.Extension.ToUpper() )
{
case ".PNG": return "image/png";
case ".JPG": return "image/jpeg";
case ".JPEG": return "image/jpeg";
case ".GIF": return "image/gif";
case ".BMP": return "image/bmp";
default:
throw new NotSupportedException( "Il file specificato non è supportato!" );
}
}

http://www.dimotta.net

(Antonio Di Motta)

Condividi

Commenti

Cosa pensi?

Il tuo commento
8 volte 7 uguale