@kosyak_47

Каким образом можно выгружать изображения с сайтов, имея прямую ссылку к картинке?

Добрый день.

Имеется большой массив размером около 6 тыс. записей, состоящий из прямых URL-ссылок к изображениям на сайте (прим. https://сайт.ру/изображения/image1.jpg, https://сайт.ру/изображения/image2.jpg, ... , https://сайт.ру/изображения/image6000.jpg). Вручную конечно же все это выгружать не хочется.

По-этому вопрос: существуют ли в C# какие-нибудь методы для реализации программы по автоматизации выгрузки изображений, имея ссылку к нему, и последующее их сохранение на ПК?

Заранее спасибо за подсказ
  • Вопрос задан
  • 637 просмотров
Решения вопроса 1
Вариантов много.
Например можно взять библиотеку Flurl.Http
using Flurl.Http;

var url = "ссылка";
var dir = "путь для сохранения";

await url.DownloadFileAsync(dir);

Или взять HttpWebRequest, как советует Hemul GM (не советую этот вариант, тк он устарел)
using System.IO;
using System.Net;

var url = "ссылка";
var dir = "путь для сохранения";

var req = HttpWebRequest.Create(url);
using var response = req.GetResponse();
using var file = File.OpenWrite(dir + "/fileName.png");
using var stream = response.GetResponseStream();

stream.CopyTo(file);

Вместо него лучше взять HttpClient:
using System.IO;
using System.Net.Http;

var url = "ссылка";
var dir = "путь для сохранения";

using var httpClient = new HttpClient();
using var stream = await httpClient.GetStreamAsync(url);
using var file = File.OpenWrite(dir + "/fileName.png");

await stream.CopyToAsync(file);


Или использовать устаревший WebClient, который хоть и устарел (по тому я тоже не рекомендую его), зато из коробки имеет метод для скачивания файлов:
using System.Net;

var url = "ссылка";
var dir = "путь для сохранения";

using var client = new WebClient();
client.DownloadFile(url, dir + "/filename.png");
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
HemulGM
@HemulGM
Delphi Developer, сис. админ
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы