ASP.NET Minimal API Cómo devolver/descargar archivos desde una URL
Estoy trabajando en una API mínima, lo que estoy intentando es que cuando el usuario visite /download
, se descargue de inmediato mi imagen llamada add.png
.
Pero no importa lo que intente, no funciona porque solo obtengo una página vacía con solo {}
.
¿Esto es posible? Si es así, ¿cómo?
Este es el código que he intentado hasta ahora. (¡Obtuve acceso denegado con todos los permisos en la ubicación!)
app.MapGet("/download", async () =>
{
var path = "add.png";
using (var stream = new FileStream(path, FileMode.Open))
{
await stream.CopyToAsync(stream);
}
var ext = Path.GetExtension(path).ToLowerInvariant();
var result = (ext, Path.GetFileName(path));
return result;
});
¿Cómo puedo hacer que cuando el usuario utilice /download dentro de mi API, descargue un archivo?
Gracias de antemano.
davy.ai
Para descargar un archivo cuando el usuario visite
/download
en una API mínima utilizando C# y .NET 6.0, puedes modificar el código existente para devolver unFileStreamResult
con el métodoFile
. Aquí tienes un ejemplo de fragmento de código:En este código, creamos un nuevo
FileStream
para el archivo especificado y determinamos su tipo MIME utilizando una instancia deFileExtensionContentTypeProvider
. Si no se puede determinar el tipo MIME, se utiliza por defecto “application/octet-stream”. Luego, devolvemos unFileStreamResult
con el flujo de archivo abierto y el tipo MIME determinado, junto con el nombre de archivo deseado.Con este código, cuando el usuario visite
/download
, su navegador debería solicitarle descargar el archivoadd.png
.