1

我想保存一个从 Internet 地址驱动的 GIF。当我从浏览器请求文件时,我收到以下字符:

GIF87a½€ÿÿÿ,½þ„©Ëí£œ´Ú‹³Þ¼û†âH–æ‰Ádk
ÇòòµuÏú>æùôãEX¯–Š¨²µ‚‰"<}O)Ò¨¬:kÜ'Õª]þ¢`ìc
­Ú”ìvöhe;Ï]¸;oßÂyþ|Þ‡µe§'hÄÔdhW÷§H#&gö¨ð…G™Gy(‰ x÷j†øyÙˆI8uJZZiª
™ªÚº¹i  {ç‰Zj™ˆwšµ7
©;é›9Æy¤VÄ$ú;œË›ÙÛI¬,œ=}|,l¼Û˧¸ìæ%]h~n»8»ÌíIv—Fe6¿‹¸®0YÉ
J7k8”•pÕá C¬4Èráâ;zü2¤È‘$Kš

我可以用这些字符检索 GIF 格式吗?

4

4 回答 4

8

GIF 是二进制文件。您不应该将其作为字符串阅读。将 GIF 读入 a byte[],然后将这些字节保存到文件中。

于 2012-07-13T16:55:24.327 回答
4

只需这样做:

string url = "http://address.com/getFile?s=1234";
string filePath = @"c:\MyFolder\file.gif";

using (WebClient client = new WebClient())
{
     client.DownloadFile(url, filePath);
}

并且不要忘记在开头添加:

using System.Net;
于 2012-07-13T17:01:30.187 回答
1

谢谢你的回答。我尝试了一种方法,我发现了问题

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Accept = "text/html, text/plain";
request.AllowAutoRedirect = true;
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
Bitmap bmp = new Bitmap(Image.FromStream(stream, true, false));
bmp.Save("image.gif");
于 2012-07-14T06:53:02.443 回答
0

从我对文件格式和网络的了解来看,这些字符是 ASCII 或其他二进制编码的表示形式。您仍然可以使用BinaryWriter.Write() 方法保存它。

于 2012-07-13T16:56:48.680 回答