Foros del Web » Programación para mayores de 30 ;) » .NET »

Imágenes en servidor

Estas en el tema de Imágenes en servidor en el foro de .NET en Foros del Web. Hola buenas tardes y un gran saludo a Todos. Esta es mi primer pregunta en esta gran comunidad q la verdad si me han ayudado ...
  #1 (permalink)  
Antiguo 10/11/2008, 12:37
 
Fecha de Ingreso: noviembre-2008
Mensajes: 88
Antigüedad: 17 años, 10 meses
Puntos: 0
De acuerdo Imágenes en servidor

Hola buenas tardes y un gran saludo a Todos. Esta es mi primer pregunta en esta gran comunidad q la verdad si me han ayudado mucho cuando leeo preguntas de otros usuarios.
Bueno paso a lo siguiente estoy realizando un proyecto en VB .net para aplicación Windows, se pretende tener lo que son terminales de ventas y servidor, leyendo en muchos foros me di cuanta que la mayoría recomienda guardar las imágenes en una carpeta del servidor y en la base de datos guardar lo que es la ruta que se compondría con el nombre o ip del servidor, la ruta de el directorio y el nombre de la imagen. Mi pregunta es Esta carpeta forzosamente tiene q estar compartida? o se podría realizar de otra manera? Espero su ayuda ya que me urge terminar esta parte.

Última edición por denpz; 10/11/2008 a las 12:43
  #2 (permalink)  
Antiguo 10/11/2008, 20:12
Avatar de pakirringem  
Fecha de Ingreso: noviembre-2008
Mensajes: 15
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: Imágenes en servidor

Si debe de estar compartida, para que los usuarios que utilicen el sistema en las terminales tengan acceso a esa carpeta a través de tu aplicación, si no es un recurso compartido enviara un error a los usuarios que quieran visualizar las imágenes
  #3 (permalink)  
Antiguo 13/11/2008, 20:27
 
Fecha de Ingreso: noviembre-2008
Mensajes: 88
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Imágenes en servidor

Hola buenas noches, como lo mencionaste ya lo probé si funciona, no habrá de otra forma para hacerlo? Gracias hasta pronto
  #4 (permalink)  
Antiguo 14/11/2008, 15:03
Avatar de pakirringem  
Fecha de Ingreso: noviembre-2008
Mensajes: 15
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: Imágenes en servidor

Yo no conozco otra manera, siempre lo he manejado así...

Pero asi funciona bien, ya que solo almacenas las imágenes en un lugar y a dicha carpeta le puedes dar solo permisos que requieras.
  #5 (permalink)  
Antiguo 15/11/2008, 19:47
 
Fecha de Ingreso: julio-2008
Mensajes: 140
Antigüedad: 18 años, 2 meses
Puntos: 2
Respuesta: Imágenes en servidor

Podés guardar la imagen en un campo BLOB, y asi no necesitas de la ruta de la imagen.
  #6 (permalink)  
Antiguo 26/02/2009, 09:34
 
Fecha de Ingreso: noviembre-2008
Mensajes: 88
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Imágenes en servidor

Lo que pasa que son más de mil artículos y como tenerlo en una base de datos crecería mucho y al hacer el respaldo tardaría un muchísimo o que opinan?
  #7 (permalink)  
Antiguo 05/03/2009, 07:32
Avatar de wladtepes  
Fecha de Ingreso: febrero-2008
Mensajes: 140
Antigüedad: 18 años, 8 meses
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(curFileName, FileMode.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(picture, 0, lung)
                
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(18, 0),
@
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.Object, ByVal e As System.EventArgs) Handles 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(sqlconsulta, cn)
        
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.Text) Then
            MessageBox
.Show("Imagen almacenada", "Grabar Imagen", MessageBoxButtons.OK, MessageBoxIcon.Information)
            
CargarImagen(TCD.Text)
        
End If

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

    End Sub 
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:56.