2016-08-03 15 views
6

Tôi cần phải trả lại từ dịch vụ web một hình ảnh được lưu trữ tại đĩa.C# Web.API Trả lại hình ảnh. MemoryStream -> StreamContent trả về hình ảnh browken

Trong bộ điều khiển của mình, tôi thực hiện một số thao tác tìm kiếm và gửi tệp. Đây là mã của tôi.

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

Nếu tôi không thêm dòng này, tôi thấy trong phản ứng cáy chiều dài cơ thể 0

imgStream.Seek(0, SeekOrigin.Begin); 

Nếu nó hoạt động. Tôi đang thiếu gì và tại sao tôi cần phải làm điều này?

Trả lời

10

Sau khi lưu vị trí dòng là ở cuối. Điều này có nghĩa là việc đọc từ nó trả về không có byte.

Mọi người gặp sự cố chính xác này một lần :)

Các vấn đề liên quan