2012-07-13 115 views
1

我想保存從互聯網地址驅動的GIF。 當我從瀏覽器請求的文件,我收到這些字符:從URL保存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格式?

+1

您正在將二進制信息打印爲文本。 – 2012-07-13 16:54:54

+1

您必須以二進制形式接收它。這只是二進制數據的文本表示,你不能使用gif。 – 2012-07-13 16:54:59

回答

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"); 
8

GIF是一個二進制文件。你不應該把它看作一個字符串。將GIF讀入byte[],然後將這些字節保存到文件中。

0

從我所知道的文件格式和網絡來看,這些字符是表示ASCII或二進制的另一種編碼。您仍然可以使用BinaryWriter.Write() Method進行保存。

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;