using System; using System.Collections.Generic; using System.IO; using System.Net.Http; using System.Text; namespace Shentun.Utilities { public class FileHelper { public static string ToBase64(string filename) { Stream stream; string fileBase64; if (filename.StartsWith("http")) { using (var httpClientHandler = new HttpClientHandler()) { using (var httpClient = new HttpClient(httpClientHandler)) { var response = httpClient.GetAsync(filename).Result; if (response.IsSuccessStatusCode) { var contentStream = response.Content.ReadAsStreamAsync().Result; using var memoryStream = new MemoryStream(); contentStream.CopyTo(memoryStream); var fileBytes = memoryStream.ToArray(); return Convert.ToBase64String(fileBytes); } else { throw new Exception("转换base64时,返回错误:" + response.StatusCode); } } } } else { using (stream = new FileStream(filename, FileMode.Open, FileAccess.Read)) { byte[] byteData = new byte[stream.Length]; stream.Read(byteData, 0, byteData.Length); fileBase64 = Convert.ToBase64String(byteData); stream.Close(); } return fileBase64; } } } }