Spanish Guardar y mostrar imagenes desde mysql

Ciclope3160

Member
Licensed User
Longtime User
Hola, he estado mirando por el foro tanto en español como en otro idioma y no encuentro nada claro para poder guardar una imagen en una base de dato mysql y a la vez poder mostrarla posteriormente desde b4a.
Si hay algun tutorial o alguien sabe como hacerlo, le estaria muy agradecido de compartir conmigo sus conocimientos.

Un Saludo.
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola Cíclope

Yo acabé guardando la imagen en el servidor, poniendo solo el nombre de la imagen en la base de datos, y subiendola o bajandola por FTP, he ganado en velocidad, el tamaño de la base de datos es mucho menor y el código es muy simple. Hace falta que a ti te vaya bien ese sistema.

Saludos
 

hibrid0

Active Member
Licensed User
Longtime User
Hola Cíclope

Yo acabé guardando la imagen en el servidor, poniendo solo el nombre de la imagen en la base de datos, y subiendola o bajandola por FTP, he ganado en velocidad, el tamaño de la base de datos es mucho menor y el código es muy simple. Hace falta que a ti te vaya bien ese sistema.

Saludos
En teoría esa es la forma correcta, xq imágenes en la base de datos termina volviéndose enorme, lenta y devoradora de recursos
 

rscheel

Well-Known Member
Licensed User
Longtime User
Hola, he estado mirando por el foro tanto en español como en otro idioma y no encuentro nada claro para poder guardar una imagen en una base de dato mysql y a la vez poder mostrarla posteriormente desde b4a.
Si hay algun tutorial o alguien sabe como hacerlo, le estaria muy agradecido de compartir conmigo sus conocimientos.

Un Saludo.

Como dicen mas arriba es mejor subir la imágenes al servidor por ftp y guardarlas en alguna carpeta ahí y solo guardar la ruta en la BD, en ninguno de los casos se recomienda guardar imágenes en BD.

Para ayudarte un poco te dejo un código.

B4X:
Sub Process_Globals
    Dim FTP As FTP
    Dim ImagenSelec As String
    Dim notif As Notification
End Sub

B4X:
Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
    FTP.Initialize("FTP", "direccion_del_servidor", puerto, "User", "Calve")
End If
End Sub

B4X:
Sub SubeFoto
    If DatosConectados.WiFi = True Then  'COMPRUEBA CONEXIÓN WIFI
        Dim MyPath As String
        MyPath = File.DirRootExternal & "/CarpetaDondeEstaLaFoto/" 'PREGUNTA SI EL DIRECTORIO EXISTE ESTA CARPETA DEBE ESTAR EN LA RAÍZ
    If File.Exists(MyPath, "") = False Then
        ToastMessageShow("La ruta no existe", True)
    Else
        FTP.SendCommand("MKD", "/Nombre Carpeta" 'CREA CARPETA NOMBRE QUE SEA QUE TU QUIERAS EN EL SERVIDOR
        ImagenSelec = NOMBRE DE IMAGEN
        FTP.UploadFile(MyPath, ImagenSelec, False, "/NOMBRE CARPETA SERVIDOR/"&ImagenSelec) 'SUBE FOTO AL SERVIDOR
    End If
    End If
End Sub

B4X:
Sub FTP_UploadProgress (ServerPath As String, TotalUploaded As Long, Total As Long)
    Dim upload As String
    'upload = "Uploaded " & Round(TotalUploaded / 1000) & "KB"
    upload = Round(TotalUploaded / 1000) & "KB"
    If Total > 0 Then upload = upload & " out of " & Round(Total / 1000) & "KB"
    Log(upload)
    'ToastMessageShow(upload, True)
    '=======================Notificación===============================
     notif.Initialize
     notif.Light = False
     notif.Vibrate = False
     notif.OnGoingEvent = False
     notif.Sound = False
     notif.Icon = "uploaded"
     notif.SetInfo("Carga de Imagen", "Subiendo Imagen"&" "&upload, "")
     notif.Notify(1)
     '=======================Fin Notificación===============================
End Sub

B4X:
Sub FTP_UploadCompleted (ServerPath As String, Success As Boolean)
    Log(ServerPath & ", Success=" & Success)
    If Success = False Then Log(LastException.Message)
    If Success = True Then
        ToastMessageShow("Imagen Subida Correctammente", True)
        notif.SetInfo("Carga de Imagen", "Finalizada", "")
        notif.Notify(1)
    Else
        ToastMessageShow("Subida imagen fracasada", True)
    End If
End Sub


Todo este ejemplo yo lo tengo corriendo en un servicio, que se ejecuta a cada cierto tiempo, Las rutas de la imágenes en el teléfono las guardo en una BD SQLITE en el mismo teléfono, cuando subo la imagen al servidor en la base de datos del servidor guardo la ruta de la imagen en la BD MYSQL en el servidor.

Espero te sirva, ya con esto no deberías tener problema en subir una imagen y guardar su ruta.
 
Last edited:

josejad

Expert
Licensed User
Longtime User
Hola:

Por favor, no reabras hilos antiguos, crea un nuevo hilo para tu consulta.
Si diriges tu consulta a alguien en concreto, corres el riesgo de que otras personas no contesten o de que esa persona ya no pase por el foro.
La librería que necesitas para usar FTP es la librería Net.
Aunque puedes basarte en el código puesto, ese ejemplo es ya antiguo, y deberías usar Wait For:

Cualquier duda, por favor, abre un nuevo hilo.

saludos,
 
Top