GOOGLE ADS

domingo, 1 de mayo de 2022

Cómo obtener el byte de contenido para el archivo que carga el usuario C#

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

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...