我正在编辑一个旧的.NET 3.5网站,需要它下载一个图像,然后提供给一个请求。基本上是一次传球。
数据以正确的大小发送,但图像不出现。
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);
}发布于 2016-08-15 17:00:12
我没看完整条小溪。
我用这个来获取完整的字节数组,然后它就可以工作了。
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();
}
}https://stackoverflow.com/questions/38959358
复制相似问题