43 lines
1.2 KiB
C#
43 lines
1.2 KiB
C#
using Microsoft.AspNetCore.Http;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Chat.Domain.Tools
|
|
{
|
|
public class Base64ToFormFile
|
|
{
|
|
public static IFormFile ConvertBase64ToFormFile(string base64String, string fileName)
|
|
{
|
|
// Remove o prefixo "data:image/png;base64," se existir
|
|
if (base64String.Contains(","))
|
|
{
|
|
base64String = base64String.Split(',')[1];
|
|
}
|
|
|
|
// Converte base64 para bytes
|
|
byte[] bytes = Convert.FromBase64String(base64String);
|
|
|
|
// Cria um stream de memória com os bytes
|
|
var stream = new MemoryStream(bytes);
|
|
|
|
// Cria um IFormFile usando o stream
|
|
var formFile = new FormFile(
|
|
baseStream: stream,
|
|
baseStreamOffset: 0,
|
|
length: bytes.Length,
|
|
name: "file",
|
|
fileName: fileName
|
|
)
|
|
{
|
|
Headers = new HeaderDictionary(),
|
|
ContentType = "image/png"
|
|
};
|
|
|
|
return formFile;
|
|
}
|
|
}
|
|
}
|