Comment puis-je obtenir l’URL d’une image puis l’écrire sur le disque ?

la programmation


J’ai essayé d’obtenir l’image à partir d’une URL, puis d’écrire l’image sur le disque sans succès.
Quelqu’un peut-il m’aider ?

Exemple d’URL :
https://static.tvmaze.com/uploads/images/medium_portrait/244/610854.jpg

Le code actuel est :

try
			{
				using var client = new HttpClient();
				var getStream = client.GetStreamAsync(webURL);
				using var fileStream = new FileStream(imagePath,FileMode.Create,FileAccess.Write);
				return true;
			}

Il écrit toujours une image jpg vide.
Cependant, lorsque j’exécute directement l’URL, l’image s’affiche.

Ce que j’ai essayé :

J’ai essayé d’utiliser une récupération comme je le fais pour les données Json. Mais ça ne marche pas.

Solution 1

Voici comment je procède :

WebClient wc = new WebClient();
outPath = Path.Combine(KnownFolders.Downloads.Path, $"{imageFileName}.{imageFileExtension}");
wc.DownloadFile(imageUrl, outPath);

Solution 2

Je ne fais que cracher, mais quelque chose comme ça devrait être possible.

C#
private HttpClient httpClient;
public async Task DownloadImageAndSaveAsync(string sourceFile, string outputFolder, string outputFileName)
{
  try
  {
    using Stream fileStream = await httpClient.GetStreamAsync(fileUrl);
    Directory.CreateDirectory(outputFolder);
    string path = Path.Combine(outputFolder, outputFileName);
    using FileStream outputFileStream = new FileStream(path, FileMode.CreateNew);
    await fileStream.CopyToAsync(outputFileStream);
  }
  catch (Exception ex)
  {
    // If you can do some exception handling, do it here...
  }
}

コメント

タイトルとURLをコピーしました