none
Proyecto Web publicado con IIS no guarda imagenes en ruta especificada RRS feed

  • Pregunta

  • Buenas Dias a todos, necesito ayuda, ya que tengo un proyecto en Asp.net C# que lo he publciado en Red Local (Sistema de Archivos) con IIS 7.5 , el problema es cuando registro un socio y selecciono una foto para guardar, no la guarda , la verdad no se si no reconoce la ruta, he probado varias maneras:

    Usando la ruta del proyecto :

    SubirFoto.SaveAs(@"C:\inetpub\wwwroot\Cosemusa\fotos" + nombre_imagen);

    la ruta de la carpeta del proyecto:

    string path = Server.MapPath("~/fotos/"); o ruta = "~/fotos/" + nombre_imagen;

    SubirFoto.SaveAs(path + nombre_imagen);

     y en una ocasion probe un helper de URL , que tampoco no funciono. Se que hay una manera de guardar pero no la encuentro aun espero me ayuden

    La ruta original de mi proyecto es : C:\inetpub\wwwroot\Cosemusa y un detalle mas, cuando ejecuto mi proyecto normalmente en la pc desde visual, si guarda las fotos normalmente en :

    ruta = "~/fotos/" + nombre_imagen;
                            SubirFoto.SaveAs(path + nombre_imagen);
    miércoles, 12 de agosto de 2015 16:44

Todas las respuestas

  • Buenas dias.


    Al parecer no es la codificación. Sin embargo, es posible que el navegador no está enviando 
    la imagen o que el control de carga está borrandola andes de subirla.

    Asegúrate de llamar .SaveAs ( ) de primero.

    Mira este enlace:

    Link

    Tambien podrias darle permiso de escritura a la carpeta a UISR.

    Link 2

    Cordialmente,


    Rafo.

    miércoles, 12 de agosto de 2015 18:36
  • Angel Laos,

    ¿La aplicacion te muestra algun mensaje de error?


    Jonathan @zoom777

    miércoles, 12 de agosto de 2015 18:46
  • Hola Jonathan , no sale ningun tipo de error, solo no la guarda en el directorio que especifique, y al querer llamarlo lo intenta al menos a pesar de q no existe
    miércoles, 12 de agosto de 2015 19:09
  • Hola Rafo gracias por responer, he estado leyendo los links q me mandaste, y he cambiado los permisos de la carpeta en la cual se guardan las imagenes de acuerdo a lo que dice el foro. (Pobe el UISR  y DefaultApplicationPool)

    Pero a pesar de eso no funciona, tiene que ser otra cosao es algo que no estoy entendiento o se me esta pasando

    miércoles, 12 de agosto de 2015 19:13
  • hola

    entiendo que SubirFoto es un FileUpload, no ?

    intenta usando

    if (SubirFoto.HasFile){
    
         string nombre_imagen = SubirFoto.FileName;
    
         string path = Server.MapPath("~/fotos/");
    
         string imagePath = Path.Combine(path, nombre_imagen)
    
         SubirFoto.SaveAs(imagePath);
    
    }

    es muy importante el if para validar si se esta subiendo la imagen

    Nota: si usas un UpdatePanel el FileUpload no funciona, por eso no subira la imagen

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    miércoles, 12 de agosto de 2015 22:07
  • Hola Leandro, gracias por responder

    Justamente en mi proyecto tenia un update panel en mi fileupload (SubirFoto) por si las dudas, el punto fue que lo quite, y probe si funcionaba, pero sigue sin grabar la imagen en el directorio que le indico.

    if (SubirFoto.HasFile){

     string path = Server.MapPath("~/fotos/");

        string imagePath = Path.Combine(path, nombre_imagen);

       SubirFoto.SaveAs(imagePath);

      } 

    Asi como esta el codigo deberia de funcionar, no se que detalle mas se tiene que adicionar, estare atento a tu

    respuesta, Gracias 


    miércoles, 12 de agosto de 2015 22:29
  • hola

    defines algun try..catch en el codigo ? si lo haces registra en un log para ver si se genera un exception

    que nombre de imagen defines ?


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 12 de agosto de 2015 22:37
  • En si todo el codigo para lo que es el nombre de la imagen y el guardado de la misma es este codigo:

    En el catch puse un mensaje de alerta en caso de error, pero no he probado con un log de try catch aun, ya que

    cuando lo ejecutaba en el visual guardaba normalmente sin problema alguno.
    El nombre de la imagen seria el correo electronico del socio.

    if (SubirFoto.HasFile)
                    {
                        string nombre_imagen;

                        if (DPLSERVIDOR.SelectedIndex == 0)
                        {
                            nombre_imagen = TXTCORREO.Text;
                        }
                        else
                        {
                            nombre_imagen = (TXTCORREO.Text + DPLSERVIDOR.SelectedItem);
                        }

                        socio.Foto = nombre_imagen;
                        gar1.Foto = nombre_imagen;
                        gar2.Foto = nombre_imagen;

                        try
                        {

                            string path = Server.MapPath("~/fotos/");

                            string imagePath = Path.Combine(path, nombre_imagen);

                            SubirFoto.SaveAs(imagePath);

                        }
                        catch
                        {

    Response.Write("<script>window.alert('Error al cargar la foto');</script>");                   

        }
                    }                                                                                                                                                              En estos momentos voy a tratar de probar la expection del catch.

    miércoles, 12 de agosto de 2015 22:46
  • Buenos Dias, Lo que hice fue cambiarle nuevamente los del User Predeterminado de ASP:

    DefaultAppPool le di control total sobre la carpeta fotos, y ya permite guardarlas, pero al momento de querer llamarlas 

    no las reconoce. a pesar de que este usuario tiene permiso de lectura y escritura

    jueves, 13 de agosto de 2015 15:40