Saltar al contenido

Comprobando si el archivo existe en asp.net mvc 5

Posterior a investigar en diferentes repositorios y páginas webs al terminar encontramos la resolución que te enseñamos pronto.

Solución:

System.IO.File funcionará si proporciona una ruta absoluta o una ruta relativa. Una ruta relativa no será relativa a la carpeta raíz HTML, pero la directorio de trabajo actual. El directorio de trabajo actual será un valor como C:Program Files (x86)IIS Express.

los ~ El carácter al comienzo de la ruta del archivo solo se interpreta como parte del contexto ASP.NET actual, que el File los métodos no saben nada acerca de.

El método para ayudarlo aquí es HttpServerUtility.MapPath

Si está en un método de controlador, puede invocar este método en el objeto HttpContext.Serverde lo contrario (por ejemplo, en una Vista) puede usar HttpContext.Current.Server.

 var relativePath = "~/files/downloads/" + fileCode + ".pdf";
 var absolutePath = HttpContext.Server.MapPath(relativePath);
 if(System.IO.File.Exists(absolutePath)) ....

Exists() puede regresar false si la aplicación no tiene suficientes permisos para acceder al archivo. Por lo tanto, debe otorgarlos a appPool en carpetas y archivos específicos.

Aquí está mi solución:


@
    var profileImg = "/Images/" + User.Identity.GetUserId() + ".jpg";
    var absolutePath = HttpContext.Current.Server.MapPath(profileImg);
    if (System.IO.File.Exists(absolutePath))
    
        imagen
else imagen

Te invitamos a añadir valor a nuestra información dando tu experiencia en las interpretaciones.

¡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 *