Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка картинки с сайта, Скачать картинку с сайта 
:(
    Опции темы
davandr
Дата 15.1.2010, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 25.10.2005
Где: Украина, Харьков

Репутация: нет
Всего: нет



Задача вроде как примитивная. Необходимо по данному урлу получить картинку с сайта и сохранить на диске. Ниже пример функции, которой я делаю это. Почему-то работает не для всех сайтов.

Например, http://www.linkedin.com/favicon.ico или http://vkontakte.ru/favicon.ico не тянет. 

Код

public static System.Drawing.Image GetImage(string url)
        {
            try
            {
                var request = (HttpWebRequest)WebRequest.Create(url);
                //request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";
                request.UserAgent = "Mozila/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2;";
                request.Accept = "image/gif, image/x-icon, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
                //request.Headers.Add("Accept-Language", "ru");

                // Set some reasonable limits on resources used by this request
                request.MaximumAutomaticRedirections = 4;
                request.MaximumResponseHeadersLength = 4;
                // Set credentials to use for this request.
                request.Credentials = CredentialCache.DefaultCredentials;
                var response = (HttpWebResponse)request.GetResponse();
                try
                {
                    // Get the stream associated with the response.
                    var receiveStream = response.GetResponseStream();

                    // Pipes the stream to a higher level stream reader with the required encoding format. 
                    var binReader = new BinaryReader(receiveStream);
                    //byte[] data = binReader.ReadBytes(Convert.ToInt32(response.ContentLength));

                    try
                    {
                        return System.Drawing.Image.FromStream(binReader.BaseStream);
                    }
                    finally
                    {
                        binReader.Close();
                    }
                }
                finally
                {
                    response.Close();
                }
            }
            catch (Exception ex)
            {
                return null;
            }
        }



--------------------
PM MAIL   Вверх
Bestoloch
Дата 16.1.2010, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 29.6.2009

Репутация: нет
Всего: нет



вероятнее всего это из-за разницы в content type (image/x-icon, image/icons).
PM MAIL   Вверх
diadiavova
Дата 16.1.2010, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Код

var wc = new WebClient();
wc.DownloadFile("http://www.blahblahblah.com/img.jpg", "c://img.jpg");
 smile 

Это сообщение отредактировал(а) diadiavova - 16.1.2010, 19:24


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
davandr
Дата 18.1.2010, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 25.10.2005
Где: Украина, Харьков

Репутация: нет
Всего: нет



Всем спасибо.

На счет разницы в content type (image/x-icon, image/icons). - странно, но нет :(

Код

var wc = new WebClient();
wc.DownloadFile("http://www.blahblahblah.com/img.jpg", "c://img.jpg");


Конечно же отработало smile


--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0888 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.