2012-02-13 26 views

Respuesta

20

Volver FilePathResult utilizando File método de controlador de

public ActionResult GetMyImage(string ImageID) 
{ 
    // Construct absolute image path 
    var imagePath = "whatever"; 

    return base.File(imagePath, "image/jpg"); 
} 

Hay varias overloads of File método. Usa lo que sea más apropiado para tu situación. Por ejemplo, si desea enviar el encabezado Content-Disposition para que el usuario obtenga el cuadro de diálogo SaveAs en lugar de ver la imagen en el navegador que pasaría en el tercer parámetro string fileDownloadName.

+3

Guau, tienes que amar ASP.NET MVC. –

1

simplemente probar uno de estos dependiendo de su situación (copiado de here):

public ActionResult Image(string id) 
{ 
    var dir = Server.MapPath("/Images"); 
    var path = Path.Combine(dir, id + ".jpg"); 
    return base.File(path, "image/jpeg"); 
} 


[HttpGet] 
public FileResult Show(int customerId, string imageName) 
{ 
    var path = string.Concat(ConfigData.ImagesDirectory, customerId, @"\", imageName); 
    return new FileStreamResult(new FileStream(path, FileMode.Open), "image/jpeg"); 
} 
4

Puede utilizar FileContentResult así:

byte[] imageData = GetImage(...); // or whatever 
return File(imageData, "image/jpeg"); 
2
using System.Drawing; 
using System.Drawing.Imaging;  
using System.IO; 

public ActionResult Thumbnail() 
{ 
    string imageFile = System.Web.HttpContext.Current.Server.MapPath("~/Content/tempimg/sti1.jpg"); 
    var srcImage = Image.FromFile(imageFile); 
    var stream = new MemoryStream(); 
    srcImage.Save(stream , ImageFormat.Png); 
    return File(stream.ToArray(), "image/png"); 
} 
Cuestiones relacionadas