📤Subida de Archivos
📃 IFormFile: Interfaz para la Subida de Archivos
Definición:
IFormFile
es una interfaz en ASP.NET Core que representa un archivo enviado con elHttpRequest
.Uso Común: Se usa en los formularios para recibir archivos subidos por el usuario.
🧰 Uso Básico de IFormFile
Obtener Información del Archivo: Puedes acceder a propiedades como
FileName
,Length
, yContentType
.Leer Contenido del Archivo: Ofrece métodos como
OpenReadStream()
para obtener el contenido del archivo.
🚀 Ejemplo Conceptual de Uso de IFormFile
Recibe el archivo en una acción del controlador o Razor Page.
Usa
ContentType
para validar el tipo MIME del archivo.Usa
CopyToAsync()
para copiar el contenido del archivo a un destino, como unFileStream
.
public async Task<IActionResult> SubirArchivo(IFormFile archivo)
{
if (archivo != null && archivo.Length > 0)
{
// Validar el tipo MIME del archivo, por ejemplo, "image/jpeg"
if (archivo.ContentType.ToLower() != "image/jpeg")
{
return BadRequest("Tipo de archivo no permitido.");
}
// Definir la ruta donde se guardará el archivo
var ruta = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "archivos", archivo.FileName);
// Verificar si el directorio existe, si no, crearlo
var directorio = Path.GetDirectoryName(ruta);
if (!Directory.Exists(directorio))
{
Directory.CreateDirectory(directorio);
}
// Copiar el archivo al destino
using (var fileStream = new FileStream(ruta, FileMode.Create))
{
await archivo.CopyToAsync(fileStream);
}
// Retornar una respuesta exitosa
return Ok(new { mensaje = "Archivo subido con éxito." });
}
// Si no hay archivo o el tamaño es 0, retornar un error
return BadRequest("No se recibió ningún archivo.");
}
}
Última actualización