Pregunta

Cuando el usuarioA sube un archivo, sus archivos se cargarán en la carpetaA, cuando el usuarioB, en la carpetaB, etc.Roles/Perfiles en ASP.NET.Las carpetas serán preexistentes.¿Alguien?

¿Fue útil?

Solución

Probablemente querrás codificarlo manualmente.No hay nada intrínseco a ASP.NET para administrar archivos de usuario.Sin embargo, el código para hacerlo debería ser relativamente sencillo.Suponiendo que el nombre de usuario es único y nunca cambia, puede combinar el nombre de usuario con una ruta (use Path.Combine) y cargarlo en esa ubicación.También bloquearía esa ubicación para que nadie más pueda acceder a ella.

Otros consejos

La forma en que lo hice en el pasado es usar una carpeta de carga base (por ejemplo, cargas) y en esa carpeta crear una carpeta usando la ID del usuario de la base de datos.Entonces, la estructura sería ..\uploads\145 para un usuario con un ID de usuario de 145.

Lo primero que hace mi código es verificar si la carpeta existe y, si no, llama a Directory.Create() (o cualquiera que sea la sintaxis) para crear la carpeta antes de cargarla.

Más información que puede resultarle útil:También cambio el nombre del archivo usando un GUID que evita conflictos de nombres si cargan 2 archivos con el mismo nombre.La desventaja es que normalmente necesitará mantener una tabla con el nombre de archivo original y el nombre de archivo físico (GUID).

Puede simplemente verificar la existencia de la carpeta y crearla para el usuario si no existe, pero esto tiene implicaciones de seguridad.También es posible que desee intentar almacenar datos en una base de datos y vincularlos a un usuario.Esto depende de lo que permitas que los usuarios carguen, supongo.

Hay algunas maneras de hacer esto:

Uso de la autenticación de formularios

Si utiliza la autenticación de formularios, puede establecer una convención en la que el nombre de usuario o la identificación de un usuario pueden servir como base para una ruta en su servidor donde el usuario puede cargar un archivo.Tenga en cuenta que su usuario no tendrá acceso directo a esa carpeta:el usuario también debería poder descargar los archivos desde su servidor a través de su aplicación web.

Usando la autenticación de Windows

Si utiliza la autenticación de Windows (por ejemplo, ActiveDirectory), puede proporcionar acceso al usuario tanto a la ubicación física de la carpeta como a través de una aplicación web.

PD- ¡Me alegro de verte por aquí Marlon!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top