none
Cargar imagen "control Image" desde una carpeta cmopartida. RRS feed

  • Pregunta

  • Hola, no logro cargar una iamgen a mi control Image, lo cargo de la siguiente manera:

    imgTrabajador.ImageUrl = "@:\\10.51.205.130\\Imagenes\\RPEXT038.jpg";

    no se que puede estar mal.

    Saludos,


    JhonTL


    • Editado JhonTL lunes, 13 de abril de 2015 22:03 Ruta Cambiada
    lunes, 13 de abril de 2015 22:01

Respuestas

Todas las respuestas

  • ¿Por qué el @:?

    imgTrabajador.ImageUrl = @"//10.51.205.130/Imagenes/RPEXT038.jpg";

    lunes, 13 de abril de 2015 22:03
  • bueno, de esa manera logro guardar la imagenes en esa ruta, y eliminarlas, pense que tambien cargarlas.


    JhonTL

    lunes, 13 de abril de 2015 22:04
  • Perdón, al revés. No sé porqué me ha cambiado las barras.

    imgTrabajador.ImageUrl = @"\\10.51.205.130\Imagenes\RPEXT038.jpg";
    De todas formas te lo preguntaba porque nunca lo había visto. No sé si es correcto.

    lunes, 13 de abril de 2015 22:07
  • Se cambiaron  por que lo edite, sorry, esa forma con el "@" la encontre en internet realmente no se para que sirve pero si fuciona..  mas no para cargar una imagen.

    saludos.


    JhonTL

    lunes, 13 de abril de 2015 22:10
  • Prueba con la instrucción tal y como te la he puesto yo. La arroba antes de la cadena indica a C# que interprete la cadena tal cual, sino interpreta la barra invertida \ como carácter de escape.

    Deberías ponerlo:

    imgTrabajador.ImageUrl = @"\\10.51.205.130\Imagenes\RPEXT038.jpg";

    o

    imgTrabajador.ImageUrl = "\\\\10.51.205.130\\Imagenes\\RPEXT038.jpg";

    lunes, 13 de abril de 2015 22:27
  • Hola, Sucede algo curioso...

    en el src aparece toda la ruta  concatenado con \\10.51.205.130\Imagenes\RPEXT038.jpg  tal como se muestra marcado de rojo



    JhonTL

    lunes, 13 de abril de 2015 22:36
  • Vale, perdón, no me había dado cuenta de que hablamos de ASP.NET.

    El problema es que para incluir la imagen en una página web el src debería apuntar a una url no a una ruta de red.

    Únicamente te funcionaría con una ruta de red, si el usuario visualiza la web desde la propia intranet y tiene permisos de lectura sobre la carpeta de red.

    lunes, 13 de abril de 2015 22:41
  • mm entiendo, los permimos ya se los di,estoy dentro de la intranet , y aguegre al grupo NETWORK SERVICE.

    seguire intentando muchas gracias por el interes.

    saludos.


    JhonTL

    lunes, 13 de abril de 2015 22:45
  • hola

    si tienes uan imagen en una carpeta en otro equipo no puedes poner la ruta fisica directo en la url del control Image

    tienes que crear un handler el cual les el byte[] de la imagen y lo envie en el Response

    usas el handler para armer la url

    aqui

    ¿Usar imágenes guardadas en la red, formulario web?

    Abrir Carpeta desde ASP.NET

    respondo sobre el mismo tema

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    • Editado Leandro TuttiniMVP martes, 14 de abril de 2015 1:59
    • Marcado como respuesta JhonTL martes, 14 de abril de 2015 15:28
    martes, 14 de abril de 2015 1:56
  • Hola leandro, gracias porla respuesta ya la estoy aplicando pero : no he usado eso antes pero comprendo un poco el codigo, podrias decirme en que parte del codigo asigno la ruta fisica donde se encuentra la imagen \\10.51.205.130\Imagenes\RPEXT038.jpg? por que veo q lo obtienes desde una BD

    gracias,.

        public class MostrarImagen : IHttpHandler
        {
            public void ProcessRequest(HttpContext context)
            {
                int id = Convert.ToInt32(context.Request.Params["id"]);
                Imagenes imagen = ImagenesDAL.GetImagenById(id);
                context.Response.Clear();
                context.Response.AddHeader("content-disposition", string.Format("attachment;filename={0}", imagen.Nombre));
                switch (Path.GetExtension(imagen.Nombre).ToLower())
                {
                    case ".jpg":
    
                        context.Response.ContentType = "image/jpg";
                        break;
                    case ".gif":
    
                        context.Response.ContentType = "image/gif";
                        break;
                    case ".png":
    
                        context.Response.ContentType = "image/png";
                        break;
                }
                context.Response.BinaryWrite(imagen.Imagen);
                context.Response.End();
            }
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }


    JhonTL

    martes, 14 de abril de 2015 15:15
  • ya esta :si alguien necesita.

    con esa linea de codigo basta ya debe funcionar solo jugar con los nombres mediante variables("RPEXT038").

    context.Response.WriteFile("\\\\10.58.206.250\\DiscoveryImagenes\\" + "RPEXT038" + ".jpg");

     y esto en la pagina web :

    imgTrabajador.ImageUrl = "MostrarImagen.ashx?Imagen=image1.jpg";

    Leandro ya esta gracias.


    JhonTL

    martes, 14 de abril de 2015 15:28
  • Eso no es lo correcto, por algo existe el concepto de virtualización de carpetas que el propio IIS te facilita, no es recomendable acceder a rutas por medio de la app sino solo el USER asociado al IIS.

    Suerte y saludos.


    Lo escencial es invisible a los ojos. http://afernandeznet.wordpress.com/

    jueves, 28 de mayo de 2015 22:09