You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
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; } } }}
|