2016-08-15 49 views
0

我正在編輯舊的.NET 3.5網站,需要它下載圖像,然後將其提供給請求。基本上是傳球。將圖像寫入ASHX

數據以正確的大小發送,但圖像不顯示。

public class AppImageHandler : IHttpHandler 
{ 

    public void ProcessRequest(HttpContext context) 
    { 
     var url = "http://static.idolator.com/uploads/2015/10/adele-hello.jpg"; 

     HttpWebRequest imageRequest = (HttpWebRequest)WebRequest.Create(url); 
     WebResponse imageResponse = imageRequest.GetResponse(); 
     Stream responseStream = imageResponse.GetResponseStream(); 

     byte[] buffer = new byte[imageResponse.ContentLength]; 
     int read; 
     Stream output = new MemoryStream(); 
     while ((read = responseStream.Read(buffer, 0, buffer.Length)) > 0) 
     { 
      output.Write(buffer, 0, read); 
     } 
     responseStream.Close(); 

     HttpResponse r = context.Response; 
     r.ContentType = "image/jpg"; 
     r.BinaryWrite(buffer); 

    } 

回答

0

我沒有閱讀全文。

我用這個來獲得完整的字節數組,然後它的作品

public static byte[] ReadFully(Stream input) 
{ 
byte[] buffer = new byte[16*1024]; 
using (MemoryStream ms = new MemoryStream()) 
{ 
    int read; 
    while ((read = input.Read(buffer, 0, buffer.Length)) > 0) 
    { 
     ms.Write(buffer, 0, read); 
    } 
    return ms.ToArray(); 
} 
}