Ver Mensaje Individual
  #7 (permalink)  
Antiguo 05/03/2009, 07:32
Avatar de wladtepes
wladtepes
 
Fecha de Ingreso: febrero-2008
Mensajes: 140
Antigüedad: 17 años
Puntos: 0
Respuesta: Imágenes en servidor

HOLA YO ENCONTRADO DOS FUNCIONES PARA ALMACENAR IMAGENES EN SQL SERVER ,PRIMERO SE DEBE DE CREAR UN REGISTRO CON UN ID Y LUEGO LA IMAGEN SE CARGA EN FUNCION DEL ID ALMACENADO ESPERO QUE TE SEA UTIL




PRIMERA FUNCION PARA GRABAR LA IMAGEN

Código PHP:
Private Function GrabarImagen(ByVal prmID_CLIENTE As String) As Boolean


        
'***************************************************************************************
        '
*********************************** FUNCION GRABAR IMAGEN  ****************************       
        
'***************************************************************************************

        Dim cn As New SqlConnection(conSQL)
        cn.Open()

        Dim SaveImage As Boolean = False
        Dim curFileName As String = ""
        Try
            '
Buscamos la imagen a grabar
            Dim openDlg 
As OpenFileDialog = New OpenFileDialog()
'*******TIPOS DE FORMATOS DE IMAGEN QUE PUEDES USAR 
            openDlg.Filter = "Todos (*.*)|*.*|Imagenes|*.jpg;*.gif;*.png;*.bmp" 
            Dim filter As String = openDlg.Filter
            openDlg.Title = "Selecccionar la imagen"
            If (openDlg.ShowDialog() = Windows.Forms.DialogResult.OK) Then
                curFileName = openDlg.FileName
                SaveImage = True
            Else
                Return False
                Exit Function
            End If
            If SaveImage = True Then

                '
CARGAR FOTOGRAFIA
                Dim fsFoto 
As FileStream
                fsFoto 
= New FileStream(curFileNameFileMode.Open)
                
Dim fiFoto As FileInfo = New FileInfo(curFileName)
                
Dim Temp As Long fiFoto.Length
                Dim lung 
As Long Convert.ToInt32(Temp)
                
Dim picture(lung) As Byte
                fsFoto
.Read(picture0lung)
                
fsFoto.Close()

'*****LLAMADO AL PROCEDIMIENTO EN SQL QUE GRABARA LA IMAGEN 
                Dim cmdFoto As New SqlCommand("TRABAJADOR_1", cn)
                cmdFoto.CommandType = CommandType.StoredProcedure
'
*****DATOS DEL PROCEDIMINTO 
                Dim sql_ID_Cliente 
= New SqlParameter("@CD"prmID_CLIENTE)
                
Dim sql_FOTO As New SqlParameter("@IMAGEN"SqlDbType.Image)
                
sql_FOTO.Value picture
                cmdFoto
.Parameters.Add(sql_ID_Cliente)
                
cmdFoto.Parameters.Add(sql_FOTO)
                
cmdFoto.ExecuteNonQuery()
                
cmdFoto.Dispose()
                
sql_FOTO Nothing
                picture 
Nothing
                
Return True
                
Exit Function
            
End If
        Catch 
ex As Exception
            MessageBox
.Show(ex.Message)
            Return 
False
        End 
Try
    
End Function 



SEGUNDA FUNCION PARA MOSTRAR LA IMAGEN


Código PHP:
 Private Sub CargarImagen(ByVal prmID_CLIENTE As String)

        
'***************************************************************************************
        '
*********************************** CARGAR IMAGEN  ************************************       
        
'***************************************************************************************

        Dim cn As New SqlConnection(conSQL)
        cn.Open()
        Try

'
*******BUSCAR LA IMAGEN EN TU BASE DE DATOS 

            Dim cmdFoto 
As New SqlCommand("select imagen from TRABAJADOR  where CD = '" prmID_CLIENTE "'")
            
cmdFoto.Connection cn
            cmdFoto
.CommandType CommandType.Text
            Dim daFoto 
As New SqlDataAdapter(cmdFoto)
            
Dim dsFoto As New DataSet()
            
daFoto.Fill(dsFoto)
            
Dim bits As Byte() = CType(dsFoto.Tables(0).Rows(0).Item(0), Byte())
            
Dim memorybits As New MemoryStream(bits)
            
Dim bitmap As New Bitmap(memorybits)
            
picFoto.Image bitmap
            cmdFoto
.Dispose()
            
dsFoto.Dispose()
            
cmdFoto.Dispose()
        Catch 
EX As Exception

            MsgBox
("NO HAY IMAGEN PARA ESTE REGISTRO ""16""No se puede mostrar fotografia")
            
picFoto.Image Nothing
            foto
.Refresh()
        
End Try
    
End Sub 

PROCEDIMIENTO SQL SERVER

Código PHP:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE 
[dbo].[TRABAJADOR_1]
(
@
CD numeric(180),
@
IMAGEN image
)
AS
UPDATE TRABAJADOR
SET IMAGEN
= @IMAGEN
where CD 
= @CD 






''*****BOTON CARGAR IMAGEN

Código PHP:
  Private Sub Bcargar_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Bcargar.Click

        
'***************************************************************************************
        '
*********************************** CARGAR IMAGEN ************************************       
        
'***************************************************************************************

        Dim cn As New SqlConnection(conSQL)
        cn.Open()

        Dim sqlconsulta As String

'
ESTE EJEMPLO LO USE PARA UN FORMULARIO DE REGISTRO DE TRABAJADORES  
'LA COSA ES QUE LAS FUNCIONES SE UTILIZAN CON UN ID Y EN FUNCION DE ESO 
'
SE CARGA LA IMAGEN 

        sqlconsulta 
"select CD from TRABAJADOR where rut_tra= " Trut1.Text
        Dim ocmd 
As New SqlCommand(sqlconsultacn)
        
Dim odr As SqlDataReader
        odr 
ocmd.ExecuteReader()
        If 
odr.Read() Then
            TCD
.Text() = odr.Item("CD").ToString()
        
End If
        
odr.Close()

ACA ENVIA EL ID ENCONTRADO  A LA FUNCION Y CARGA LA IMAGEN 

        
If GrabarImagen(TCD.TextThen
            MessageBox
.Show("Imagen almacenada""Grabar Imagen"MessageBoxButtons.OKMessageBoxIcon.Information)
            
CargarImagen(TCD.Text)
        
End If

        
MsgBox("EDICION TERMINADA ""64""Operacion exitosa")
        
Bcargar.Enabled False

    End Sub