2016-08-03 10 views
6

देता है मुझे वेब सेवा से डिस्क पर संग्रहीत एक छवि से वापस लौटना होगा।सी # वेब.एपीआई रिटर्निंग छवि। मेमोरीस्ट्रीम -> स्ट्रीमकंटेंट ब्रोकेन छवि

मेरे नियंत्रक में मैं कुछ खोज संचालन करता हूं और फ़ाइल भेजता हूं। मेरा कोड यहाँ है।

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

मैं इस लाइन को जोड़ने नहीं है, तो मैं Fiddler प्रतिक्रिया शरीर की लंबाई 0

imgStream.Seek(0, SeekOrigin.Begin); 

अन्यथा यह काम करता है में देखते हैं। मुझे क्या याद आ रहा है और मुझे ऐसा करने की ज़रूरत क्यों है?

उत्तर

10

धारा स्थिति को सहेजने के बाद अंत में है। इसका मतलब है कि इससे पढ़ना कोई बाइट नहीं देता है।

हर कोई इस सटीक मुद्दे में एक बार चलाता है :)

संबंधित मुद्दे