2016-08-03 2 views
6

Мне нужно вернуть из веб-службы изображение, которое хранится на диске.C# Web.API Возвращаемое изображение. MemoryStream -> StreamContent возвращает изображение browken

В моем контроллере я выполняю некоторые операции поиска и отправляю файл. Вот мой код.

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; 
} 

Если я не добавляю эту линию, я вижу в ответ стельки длине тела 0

imgStream.Seek(0, SeekOrigin.Begin); 

В противном случае он работает. Что мне не хватает и зачем мне это нужно?

ответ

10

После сохранения позиции потока в конце. Это означает, что чтение из него не возвращает байтов.

Каждый раз сталкивается с этой проблемой: