[英]Download and show an image from a URL in background
How to download & show an image from a URL using asp.net 如何使用asp.net从URL下载和显示图像
eg I have a page ShowImage.aspx When I call this page it should show image(from Response Stream) from external URL https://appharbor.com/assets/images/stackoverflow-logo.png 例如,我有一个页面ShowImage.aspx,当我调用该页面时,它应该显示来自外部URL的图像(来自响应流) https://appharbor.com/assets/images/stackoverflow-logo.png
with Response.ContentType = "Image/png" 与Response.ContentType =“ Image / png”
SOLVED ON MY OWN 自己解决
protected void Page_Load(object sender, EventArgs e)
{
WebRequest req = WebRequest.Create("https://appharbor.com/assets/images/stackoverflow-logo.png");
WebResponse response = req.GetResponse();
Stream stream = response.GetResponseStream();
Byte[] buffer = null;
Response.Clear();
Response.ContentType = "image/png";
Response.AddHeader("Content-Length", response.ContentLength.ToString());
int bytesRead = 0;
do
{
buffer = new Byte[4096];
bytesRead = stream.Read(buffer, 0, buffer.Length);
if (bytesRead > 0)
{
Response.OutputStream.Write(buffer,0,bytesRead);
}
} while (bytesRead > 0);
Response.End();
}
REF: http://forums.asp.net/t/1401931.aspx/1 参考: http : //forums.asp.net/t/1401931.aspx/1
You can simply use the Image.ImageUrl property of Image control 您可以简单地使用Image控件的Image.ImageUrl属性
<asp:Image id="img1" runat="server" ImageUrl="https://appharbor.com/assets/images/stackoverflow-logo.png" />
If you want to set Image url from server side (code behind) 如果要从服务器端设置图像URL(后面的代码)
img1.ImageUrl = "http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.image.imageurl.aspx";
If you use WebRequest to get the Image string from url. 如果使用WebRequest从url获取Image字符串。
WebRequest req = WebRequest.Create("https://appharbor.com/assets/images/stackoverflow-logo.png");
WebResponse response = req.GetResponse();
Stream stream = response.GetResponseStream();
System.Drawing.Image image = System.Drawing.Image.FromStream(stream);
using (MemoryStream ms = new MemoryStream())
{
image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
ms.WriteTo(Response.OutputStream);
}
public class Service1 : IService1
{
public Stream GetImage()
{
WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
using(WebClient Client = new WebClient())
{
using(StreamReader Reader = new StreamReader(Client.OpenRead("FILE URL")))
{
try
{
string Contents = Reader.ReadToEnd();
Reader.Close();
return Contents;
}
catch
{
return string.Empty;
}
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.