2012-07-13 5 views
1

Я хочу сохранить GIF-файл из интернет-адреса. Когда я запросить файл из браузера, я получаю эти символы:Сохранение GIF по URL-адресу

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

Вы печатаете двоичную информацию как текст. –

+1

вы должны получить его как двоичный. это просто текстовое представление двоичных данных, и вы не можете сделать gif из него. –

ответ

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; 
Смежные вопросы