كيف يمكنني الحصول على عنوان URL للصورة ثم كتابته على القرص؟


لقد كنت أحاول الحصول على الصورة من عنوان url ثم كتابة الصورة على القرص دون نجاح.
يمكن لأي شخص أن تساعد في ذلك؟

مثال عنوان URL هو:
https://static.tvmaze.com/uploads/images/medium_portrait/244/610854.jpg

الكود الحالي هو:

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

يكتب دائمًا صورة jpg فارغة.
ومع ذلك، عندما أقوم بتنفيذ عنوان URL مباشرةً، تظهر الصورة.

ما حاولت:

لقد حاولت استخدام عملية استرجاع كما أفعل مع بيانات Json. لكن ذلك لا يفيد.

الحل 1

وإليك كيف أفعل ذلك:

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

الحل 2

مجرد بصق، ولكن شيء من هذا القبيل ينبغي أن يكون ممكنا.

ج #
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をコピーしました