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.

52 lines
1.8 KiB

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;
}
}
}
}