Saltar al contenido

Obtener la imagen de wwwroot / images en ASP.Net Core

Solución:

Sería más limpio inyectar un IHostingEnvironment y luego use su WebRootPath o WebRootFileProvider propiedades.

Por ejemplo en un controlador:

private readonly IHostingEnvironment env;
public HomeController(IHostingEnvironment env)
{
    this.env = env;
}

public IActionResult About(Guid foo)
{
    var path = env.WebRootFileProvider.GetFileInfo("images/foo.png")?.PhysicalPath
}

En una vista que normalmente desea utilizar Url.Content("images/foo.png") para obtener la URL de ese archivo en particular. Sin embargo, si necesita acceder a la ruta física por algún motivo, puede seguir el mismo enfoque:

@inject Microsoft.AspNetCore.Hosting.IHostingEnvironment env
@{ 
 var path = env.WebRootFileProvider.GetFileInfo("images/foo.png")?.PhysicalPath
}

Sobre la base de la respuesta de Daniel, pero específicamente para ASP.Net Core 2.2:

Use la inyección de dependencia en su controlador:

[Route("api/[controller]")]
public class GalleryController : Controller
{
    private readonly IHostingEnvironment _hostingEnvironment;
    public GalleryController(IHostingEnvironment hostingEnvironment)
    {
        _hostingEnvironment = hostingEnvironment;
    }        

    // GET api/<controller>/5
    [HttpGet("{id}")]
    public IActionResult Get(int id)
    {
        var path = Path.Combine(_hostingEnvironment.WebRootPath, "images", $"{id}.jpg");
        var imageFileStream = System.IO.File.OpenRead(path);
        return File(imageFileStream, "image/jpeg");
    }
}

Se inyecta una instancia concreta de IHostingEnvironment en su controlador y puede usarla para acceder a WebRootPath (wwwroot).

FYI Solo una actualización de esto. En ASP.NET Core 3 y Net 5 es lo siguiente:

    private readonly IWebHostEnvironment _env;

    public HomeController(IWebHostEnvironment env)
    {
        _env = env;

    }

    public IActionResult About()
    {
      var path = _env.WebRootPath;
    }
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *