如何从外部链接缓冲图像

时间:2011-01-12 09:32:29

标签: c# asp.net

我有一个带有图像的外部链接我想要流式传输,但是当我尝试时会出现此错误。

错误 “不支持URI格式。”

我试图流: 流fileStream = new FileStream(“http://www.lokeshdhakar.com/projects/lightbox2/images/image-2.jpg”,FileMode.Open); byte [] fileContent = new byte [fileStream.Length];

任何人都可以对此有所了解。

由于

2 个答案:

答案 0 :(得分:4)

您使用的FileStream构造函数必须在本地硬盘上提供路径,而不是外部URL。

你可能正在寻找这个:

string url = "http://www.lokeshdhakar.com/projects/lightbox2/images/image-2.jpg";
HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
HttpWebResponse httpWebReponse = (HttpWebResponse)httpWebRequest.GetResponse();
Stream stream = httpWebReponse.GetResponseStream();

也可能就此:

Image pic = Image.FromStream(stream);
MemoryStream ms = new MemoryStream();
pic.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
Byte[] arr = ms.ToArray();

答案 1 :(得分:0)

FileStream不支持通过互联网打开文件。

试试这个:

var webClient = new WebClient();
using(var fileStream = webClient.OpenRead("http://www.lokeshdhakar.com/projects/lightbox2/images/image-2.jpg")) 
{
    byte[] fileContent = new byte[fileStream.Length];       
}