Estoy trabajando en el proyecto ASP.Net MVC 4.7, en el que estoy usando Microsoft graph api para enviar correo. Quiero saber cuál es el contentByte. Cómo puedo obtenerlo de la secuencia de archivos. Consulte el siguiente código. Estoy buscando
fileAttachment.ContentBytes=
Tenga en cuenta que los archivos están en flujo, los carga el usuario.
private static MessageAttachmentsCollectionPage GetAttachments(List<HttpPostedFileBase> fileUploader)
{
var attachmentPage = new MessageAttachmentsCollectionPage();
if (fileUploader!= null)
{
foreach (var file in fileUploader)
{
var fileAttachment = new FileAttachment();
fileAttachment.Name = file.FileName;
fileAttachment.ContentType = file.ContentType;
fileAttachment.ContentBytes =??
attachmentPage.Add(fileAttachment);
}
}
Solución del problema
Esto es solo un contenido codificado en base64 del archivo (cadena). Por ejemplo:
public static class StreamExtensions
{
public static string ConvertToBase64(this Stream stream)
{
if (stream is MemoryStream memoryStream)
{
return Convert.ToBase64String(memoryStream.ToArray());
}
var bytes = new Byte[(int)stream.Length];
stream.Seek(0, SeekOrigin.Begin);
stream.Read(bytes, 0, (int)stream.Length);
return Convert.ToBase64String(bytes);
}
}
Puede encontrar diferentes enfoques descritos en Codificar un FileStream en base64 con el subproceso c#.
No hay comentarios:
Publicar un comentario