none
Cargar una imagen de producto en base de datos o disco RRS feed

  • Pregunta

  • Buenas noches, estoy buscando un ejemplo para cargar una imagen en una base de datos o en su defecto en disco (La direccion), lo que pasa es que ya he probado muchos codigos yn o me funcionan, como por ejemplo:

    Dim fs As Stream = FileUpload1.PostedFile.InputStream
                Dim br As New BinaryReader(fs)
                Dim bytes As Byte() = br.ReadBytes(fs.Length)
    
                'insert the file into database
                Dim strQuery As String = "UPDATE ALUMNO SET FOTO=@FOTO WHERE COD_AL='" + LBLCODAL.Text + "'"
                Dim cmd As New SqlCommand(strQuery)
                cmd.Parameters.Add("@FOTO", SqlDbType.Binary).Value = bytes
                InsertUpdateData(cmd)

    este código claro que me funciona para cargar mi foto a la bd, pero no funciona en el modo cliente, en mi pc corre de las mil maravillas, pero cuando lo uso en otra pc no carga nada a la bd.

    por otro lado, el codigo de llamada es este.

     If dr(18).Equals(DBNull.Value) Then
                    Me.Image1.ImageUrl = "Iconos-Imagenes\FOTO.jpg"
                Else
                    SourceImage = Bytes2Image(CType(dr(18), Byte()))
                    CODIGO PARA VISTA LOCAL
                    SaveJPG(SourceImage, "C:\Users\Root\Documents\Visual Studio 2013\WebSites\Sistema\Diseño\Iconos-Imagenes\ejemplo.jpg")
    
                    'carga la imagen creada al control Image
                    
                    Me.Image1.ImageUrl = "Diseño\Iconos-Imagenes\ejemplo.jpg"
                End If

    Para el primer campo carga, ejemplo, cargo la imagen de pepito y la guardo como ejemplo.jpg, luego lo muestro cuando la consulta, pero cuando hago la consulta de Juanito, y carga el form, ejemplo.jpg (que estaba la foto de Juanito) no cambia, y sigue mostrando la misma foto, que puedo hacer?


    jueves, 6 de agosto de 2015 0:04

Respuestas

  • hola

    >>en donde agrego el server mappath?,

    el Server.MapPath() aplica si la imagen esta dentro de la estructura del sitio web

    string fullPath = Server.MapPath("~/Iconos-Imagenes/ejemplo.jpg");

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 6 de agosto de 2015 12:06

Todas las respuestas

  • hola

    porque defines una ruta fija para tomar la imagen ? el tema de definir "C:\Users\Root\Documents\...." lo dejas de esa forma cuando lo llevas a la otra pc ?

    la imagen no la ubicas en uan carpeta dentro del sitio web ? proque si es asi deberias usar el Server.MapPath()

    ademas para leer el byte[] podrias usar el File.ReadAllBytes() es mas simple que usar el BinaryReader

    ademas si usas parametros para asignar el array de la imagen, porque no lo usas tambien para asignar el LBLCODAL.Text ? digo conoces el usao de parametros usalo siempre, concatener en un string es una pesima practica

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 6 de agosto de 2015 1:19
  • Iba a normalizarlo para enviarlo en un sp con todos los datos, los datos de registro de alumno los tengo en un sp, asi que para probar si hacia la carga con el código y mostraba la web, lo pensé normalizar hasta despues de saber que el código funciona por eso lo trabajaba de forma plana, parecido a un simple Commandtext.

    en este caso si mi ruta especificada (como vi en el ejemplo) es:

    C:\Users\Root\Documents\Visual Studio 2013\WebSites\Sistema\Diseño\Iconos-Imagenes\ejemplo.jpg

    en donde agrego el server mappath?, Gracias por responder.

    PD: Normalmente era un sp que capturaba un querystring como parámetro.


    • Editado HiroshixD jueves, 6 de agosto de 2015 6:43
    jueves, 6 de agosto de 2015 6:43
  • hola

    >>en donde agrego el server mappath?,

    el Server.MapPath() aplica si la imagen esta dentro de la estructura del sitio web

    string fullPath = Server.MapPath("~/Iconos-Imagenes/ejemplo.jpg");

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 6 de agosto de 2015 12:06