2016-08-03 18 views
6

Web hizmetinden, diskte saklanan bir görüntüye geri dönmem gerekiyor.C# Web.API Resmi döndürme. MemoryStream -> StreamContent, tarayıcı görüntüsünü döndürür

Denetleyicimde bazı arama işlemleri gerçekleştirip dosya yolluyorum. İşte benim kodum. Bu hattı eklemezseniz

public HttpResponseMessage Get([FromUri]ShowImageRequest req) 
{ 
    // ....................... 
    // ....................... 

    // load image file 
    var imgStream = new MemoryStream(); 

    using (Image image = Image.FromFile(fullImagePath)) 
    { 
     image.Save(imgStream, ImageFormat.Jpeg); 
    } 

    imgStream.Seek(0, SeekOrigin.Begin); // it does not work without this 

    var res = new HttpResponseMessage(HttpStatusCode.OK); 
    res.Content = new StreamContent(imgStream); 
    res.Content.Headers.ContentType = new ediaTypeHeaderValue("image/jpeg"); 
    return res; 
} 

, ben 0

imgStream.Seek(0, SeekOrigin.Begin); 

Aksi çalıştığını kemancı tepki vücut uzunluğu görüyoruz. Neyi özlüyorum ve neden bunu yapmaya ihtiyacım var? akış konumu kaydettikten sonra

cevap

10

ucundadır. Bu, ondan okunmanın hiçbir bayt döndürmediği anlamına gelir.

Herkes bir kez tam olarak bu sorunu çalışır :)

İlgili konular