Guardar y mostrar imágenes en un programa con entorno de red o base de datos en un servidor

Hola haber si me podéis ayudar porque tengo un grave problema que me urge:
Yo guardo (MYSQL) la dirección de la imagen en un campo (VARCHAR 200), el problema es que en mysql, no se porque, se me come las "\" (barras) y luego no se me muestra la imagen, ¿cuál es la solución para que me guarde la dirección como yo se la mando guardar?
He estado pensando, que si trabajo en red las imágenes no se van a ver en todos los ordenadores porque la dirección de la imagen no corresponde a todos los ordenadores al no estar las imágenes en todos los ordenadores, ¿cuál es la forma correcta para guardar y mostrar imágenes en un programa con entorno de red o con base de datos en un servidor?
Ayuda urgente por favor, gracias por tu atención y Saludos.

1 respuesta

Respuesta
1
Si las fotos no son muy pesadas guardarlas en la base como campo general con un id y el campo que contendrá la foto. Pasa tu correo en mis librerías vi algo para este fin
Se guardarla en la base de datos pero mostrarla no, me puedes pasar un ejemplo sencillo.
Mi correo es [email protected]
Saludos
Vamos a solucionar esto desglosando tres pequeños ejemplos de almacenamiento de imágenes en mysql.
1.Crear una tabla en mysql para almacenar las imágenes.
2.Archivar una imagen en un campo de la tabla de nuestra base de datos.
3.Proceder a su descarga posterior.
1. Crear una tabla de mysql
Vamos a tener que crear una pequeña tabla en nuestra base de datos mysql con la siguiente estructura:
Código, descripción, foto (atención al campo foto ya que será del tipo blob)
Crearemos la tabla desde nuestro querido vfp.
********************************************
* creacion de tabla (albumfotos)
********************************************
local csql, nh, ccadena
csql=""
nh=0
ccadena=""
csql= "driver={mysql odbc 3.51 driver};" + ;
"server=127.0.0.1;" + ;
"port=3306;" + ;
"uid=usuario;" + ;
"pwd=pasword;" + ;
"database=mybasededatos;" + ;
"options=2049;"
nh=sqlstringconnect(""+csql, .t.)
if nh > 0
        sqlsetprop(nh,'asynchronous', .t.)
        sqlsetprop(nh,'batchmode', .t.)
        text to csql textmerge noshow
            create table albumfotos (
                codigo char(03) not null default '000',
                descripcion varchar(50) default '',
                foto longblob,
                primary key (codigo))
                engine=innodb row_format=dynamic
        endtext
        sqlprepare(nh,""+csql)
        Sqlexec(nh)
        wait window 'tabla creada'
        Sqldisconnect(nh)
Endif
Release csql, nh, ccadena
*************************************************************2. archivar imagen en la tabla de mysql.
Vamos a archivar una imagen en la tabla (albumfotos). La imagen estará ubicada en el directorio raíz c:\ y será el archivo de imagen foto001.jpg
Crearemos una variable en vfp del tipo blob que contendrá la imagen antes de su posterior grabación: (en este caso omitiremos las ordenes de conexión a la base de datos)
********************************************
* archivar imagen
********************************************
local bimagen as blob
bimagen=(0h)         && inicializamos la variable
bimagen=filetostr("c:\foto001.jpg")
text to csql textmerge noshow
        replace into albumfotos
                set   codigo='001',
                        descripcion='foto-001',
                        foto=?bimagen
endtext
sqlprepare(nh,""+csql)
Sqlexec(nh)
wait window 'imagen grabada'
release bimagen
*************************************************************3. extraer imagen de la tabla de mysql.
Vamos a extraer la misma imagen de la tabla de mysql y ahora la guardaremos en el directorio fotos. (Obviamente en este caso también omitiremos las ordenes de conexión a la base de datos)
********************************************
* extraer imagen
********************************************
cursorsetprop("mapbinary", .t., 0)
text to csql textmerge noshow
    select foto
        from albumfotos where codigo='001'
endtext
sqlprepare(nh,""+csql,"tcursor")
sqlexec(nh)
select tcursor
if reccount() > 0
    strtofile(tcursor.foto,"c:\fotos\foto001.jpg")
Endif
Close tables all
********************************************
PD inf extraida de otra pagina web

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas