none
Como puedo crear una carpeta o directorio en asp.net C# con código

    Question

  • Hola estoy haciendo una aplicacion web en la cual los usuarios publican anuncios.

    Cuando el usuario crea su anuncio quiero poder crear una carpeta con su id de anuncio por ejemplo

    creardirectorio("ruta"+ id_anuncio);

    Intente algo como esto pero no funciono : 

    string path = "~/imagenes/anuncios/" + id_anun;

    Directory.CreateDirectory(path);

    me sale este error: 

    Acceso denegado a la ruta de acceso '~/imagenes/anuncios/7'.

    Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código. 

    Detalles de la excepción: System.UnauthorizedAccessException: Acceso denegado a la ruta de acceso '~/imagenes/anuncios/7'. 

    ASP.NET no está autorizado para obtener acceso al recurso solicitado. Considere la posibilidad de conceder derechos de acceso al recurso para la identidad de solicitud de ASP.NET. Si la aplicación no se va a suplantar, ASP.NET utiliza una identidad de proceso base (normalmente {MACHINE}\ASPNET en IIS 5 o Network Service en IIS 6). Si la aplicación se va a suplantar mediante <identity impersonate="true"/>, la identidad será el usuario anónimo (generalmente IUSR_MACHINENAME) o el usuario solicitado autenticado. 

    Para conceder a ASP.NET acceso a un archivo, desde el Explorador, haga clic con el botón secundario del mouse en el archivo, elija "Propiedades" y seleccione la ficha Seguridad. Haga clic en "Agregar" para agregar el usuario o grupo adecuado. Resalte la cuenta de ASP.NET y active las casillas según el acceso deseado.

     

    1.- Como puedo crear la carpeta??

    2.- Yo hago mis propios anuncio son fichas tecnicas guardo todo en la base de datos hasta las imagenes, pero para los usuarios quiero subir las imagenes al servidor mediante upload en vez de guardarlos en mi base de datos, esta bien? o debo seguir guardando las imagenes en la base de datos??

    3.- Como puedo validar con el fileupload que las imagenes  no sean mayores por ejemplo a 2 MB??

    4.- Como puedo cambiar el nombre de la imagen que esta en el Fileupload antes de subir al servidor a la base?


    saludos y gracias de antemano

    Thursday, December 09, 2010 12:27 AM

All replies

  • Hola,

    1. para crear la carpeta debes crearla en la estructura de tu sitio, con appdomain.currentdomain puedes traar la ruta en donde esta tu app,

    2. depende, si tu equipo tiene bastante espacion no tienes problema, pero debes tener claro el nombre de las imagenes, para q cuando debas buscar no tengas ´rpblema o se te pierda alguna imagen

    3. el tamaño maximo por defecto es de 4mb, revisa este link http://msdn.microsoft.com/es-es/library/system.web.ui.webcontrols.fileupload%28VS.80%29.aspx

    4. claro cuando le dices fileupload.saveas("ruta") en riuta ñle colocas el nombre q quieras, es decir el toma el archivo q tengas en el fileuplolad, pero ouedes usar el nombre q quieras...

     


    Julio Avellaneda
    Blog !!

    Thursday, December 09, 2010 12:34 AM
  • hola

    es que debes proporcionar una ruta fisica para poder crear la carpeta, no una virtual que sua el sitio

    para esto deberas usar el Server.MapPath()

     

    string path = Path.Combine(Server.MapPath("~/imagenes/anuncios"),  id_anun);

    Directory.CreateDirectory(path);

     

    Nota: incluye el using a System.IO para poder usar el Path.Combine()

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Thursday, December 09, 2010 12:34 AM
  • y si sigo guardandolas en mi base de datos no habra ningun problema, solo estarán maximo 30 dias, y despues se borrarn y subiran otros etc...

     

    Ya tengo todo hecho para mi base de datos lo puedo seguir haciendo asi?

     

    Saludos y gracias

    Thursday, December 09, 2010 12:45 AM
  • y si sigo guardandolas en mi base de datos no habra ningun problema, solo estarán maximo 30 dias, y despues se borrarn y subiran otros etc...

     

    Ya tengo todo hecho para mi base de datos lo puedo seguir haciendo asi?

     

    Saludos y gracias

    Thursday, December 09, 2010 12:46 AM
  • en ese caso te acosejo q lo sigas haciendo en tu base de datos, ya tienes toda la logica, la estructuta, ademas como es por tiempo limitado el tamañoa de tu base de datos no se crecera de una manera alarmante..

     


    Julio Avellaneda
    Blog !!

    Thursday, December 09, 2010 12:47 AM