File.WriteAllBytes 和 Convert.FromBase64String 出现错误

问题描述 投票:0回答:2

我用这个代码

File.WriteAllBytes("c:\\TEMP\\ETIQUETTE3.pdf", Convert.FromBase64String("https://easypost-files.s3.us-west-2.amazonaws.com/files/postage_label/20240222/e86694b3ff2c284f158731ab8baa4ffcd6.pdf"));

我有这个错误:**入口不是 Base 64 有效的链,该内容是非 Base 64 的字符,加上 deux caractères de remplissage 或 un conforme parmi les caractères de remplissage。 **

谢谢

c# urlencode
2个回答
0
投票

您发布的 URL 只是一个普通字符串,而不是 Base64 字符串。

您只需下载文件并保存即可。

using (var client = new HttpClient())
using (HttpResponseMessage response = await client.GetAsync("https://easypost-files.s3.us-west-2.amazonaws.com/files/postage_label/20240222/e86694b3ff2c284f158731ab8baa4ffcd6.pdf"))
{
    byte[] fileContents = await response.Content.ReadAsByteArrayAsync();
    File.WriteAllBytes("c:\\TEMP\\ETIQUETTE3.pdf", fileContents);
}

0
投票

您正在尝试使用Conver.fromBase64String,它需要一个base64字符串而不是URL 您可以下载文件来写入所有字节:

using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.IO;

class Program
{
    static async Task Main(string[] args)
    {
        string url = "https://easypost-files.s3.us-west-2.amazonaws.com/files/postage_label/20240222/e86694b3ff2c284f158731ab8baa4ffcd6.pdf";
        string filePath = "c:\\TEMP\\ETIQUETTE3.pdf"; //desired path to save

        using (var httpClient = new HttpClient())
        {
            var response = await httpClient.GetAsync(url);
            if (response.IsSuccessStatusCode)
            {
                var fileBytes = await response.Content.ReadAsByteArrayAsync();
                File.WriteAllBytes(filePath, fileBytes);
                Console.WriteLine("File downloaded and saved successfully.");
            }
            else
            {
                Console.WriteLine("Failed to download the file.");
            }
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.