Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   RAD PHP, insertar una imagen desde el campo de una tabla MySql (https://www.clubdelphi.com/foros/showthread.php?t=78203)

juanpy 28-03-2012 22:25:46

RAD PHP, insertar una imagen desde el campo de una tabla MySql
 
Estimados,

Necesito insertar en un form RAD PHP una imagen desde un campo de una tabla MySql.

He probado con DataSource, DataField, AutoSize, Binary y todas las propiedades de Image que existen pero no logra levantar la imagen y solo me aperece el codigo binario.

Si alguien pudiese orientarme se lo agradeceria sinceramente.

Gracias.

ecfisa 29-03-2012 19:17:50

Hola juanpy.

¿ Podrías poner la parte del código donde asignas la imágen al componente que debe mostrarla ?

Saludos.

juanpy 29-03-2012 23:04:41

RAD PHP Sigo con el problema
 
Hola Ecfisa,

Las propiedades son:
Autosize Falso
Binary Falso
BinaryType image/jpeg
Border True
Cached Falso
Center Falso
Cursor crDefaul
DataField [empty]
DataSource [empty]
Enable True
Hnt [empty]
ImageSource [empty]
Layer 0
Left 602
Link [empty]
LinkTarget [empty]
Name Image2
ParentShowHnt True
PopupMenu [empty]
Proportional True
ShowHnt Falso
Stretch Falso
Style [empty]
Tag 0
Top 106
Visible True
Width 178

Y el código es:

Código PHP:

if ($this->ConsultaSocio->fields['foto']<>"") {
         
$this->Image2->ImageSource=$this->ConsultaSocio->fields['foto']; // usuario/contraseña incorrecta
     
}
     else 
$this->Image2->ImageSource='FND2.jpg'

Saludos y gracias estimado.

georkis 02-04-2012 20:10:12

To tengo el código...
 
Tengo que revizar muy bien en mi mata burro... porque a la verdad eso ya no se usa... imagínate que PHP tiene que leer la imagen y luego mostrarla... lo logico sería subir la imagen y conjuntamente la ubicación... no tengo experiencia de que lo que es RAD PHP... pero lo lógico sería por URL y no Insertar la imagen en la base de dato... dime si te inserto el Código. Para buscarlo en el mata burro... es una frase que use... es como un saco de cosa que tengo (Manuales, ejemplos, entre muchas cosas)... bueno dime??? :confused:

juanpy 02-04-2012 22:05:37

Excelente ofrecimiento...
 
Estimado Georkis,

La verdad es que tienes toda la razón, y es como yo tambien pienso, pero el sistema trabaja así, el modelo de las tablas lleva 4 años, y es lo que que hay, osea, hay que "aperrar" (un perro acata no cuestiona).

RAD PHP o DELPHI FOR PHP, es una buena herramienta pero con escasa información y casi nada de soporte.

Ayudeme con lo que tenga, todo será bienvenido mire que hasta ahora avanzo lento y a puros comentarios de los colegas del foro...

Saludos y gracias.

georkis 03-04-2012 18:58:47

Hola colega...
 
Tengo lo que quieres, pero lo tengo en mi casa, tienes que esperar hasta mañana 4 de abril para enviarte un PDF, que tiene varios ejemplos de como trabajar con ficheros desde la base de datos MySQL, Ese método de poner la imagen en la base de datos lo use hace tiempo, se demora un poquito pero es seguro de tenerlo en la base de datos y no en un directorio esa es la diferencia, por eso te exigen que trabajes así, pero hay opciones de seguridad que se da en PHP para evitar dichas violaciones en los directorios...

Bueno colega... mañana a más tardar te mando el PDF. :rolleyes:

juanpy 03-04-2012 21:42:50

Perfecto colega.
 
Quedo a la espera de tan excelente material ofrecido...

Agradecido desde ya....

georkis 05-04-2012 19:27:22

Aquí tienes un ejemplo...
 
1 Archivos Adjunto(s)
Código SQL [-]
CREATE TABLE binary_data ( id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY, description CHAR(50), bin_data LONGBLOB, filename CHAR(50), filesize CHAR(50), filetype CHAR(50) );

Código:

<HTML>
<HEAD><TITLE>Store binary data into SQL Database</TITLE></HEAD>
<BODY>

Código PHP:

<?php
if ($submit) {
//codigo que se ejecuta si se presiono el botón submit
MYSQL_CONNECT"localhost""root""password");
mysql_select_db"binary_data");
$data addslashes(fread(fopen($form_data"r"), filesize($form_data)));
$result=MYSQL_QUERY"INSERT INTO binary_data
(description,bin_data,filename,filesize,filetype) "
.
"VALUES
('
$form_description','$data','$form_data_name','$form_data_size','$form_d
ata_type')"
);
$idmysql_insert_id();
print 
"<p>Database ID: <b>$id</b>";
MYSQL_CLOSE();
} else {
// sino mostrar el formulario para nuevos datos:
?>

Código:

<form method="post" action=" <?php echo $PHP_SELF; ?>"
enctype="multipart/form-data">
File Description:<br>
<input type="text" name="form_description" size="40">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
<br>File to upload/store in database:<br>
<input type="file" name="form_data" size="40">
<p><input type="submit" name="submit" value="submit">
</form>

Código PHP:

<?php
}
?>

</BODY>
</HTML>
*******************************************************************
Crear una página ( getdata.php )
*******************************************************************
Código PHP:

<?php
if($id) {
@
MYSQL_CONNECT"localhost""root""password");
@
mysql_select_db"binary_data");
$query "select bin_data,filetype from binary_data where id=$id";
$result = @MYSQL_QUERY($query);
$data = @MYSQL_RESULT($result,0"bin_data");
$type = @MYSQL_RESULT($result,0"filetype");
Header"Content-type: $type");
echo 
$data;
};
?>

Fundamental >>>Para usar el código <<<
<img src="getdata.php?id=3">
De todas formas te envio el PDF esta en la página 8 hasta la 10...
Dime si te sirvió... este script te lee la imagen que esta almacenada en la base de datos... :D

juanpy 05-04-2012 20:16:32

Gracias colega
 
Amigo georkis,

Gracias por el material que de verdad se ve muy interesante y por los ejemplos.

Los voy a aplicar y te comento como me fue...

Una pregunta; tu sabes como recogo un valor desde las grillas de una QDBGrid o una DBGrid?.

Muchas garcias.

georkis 05-04-2012 20:48:46

Hola colega...
 
De que valor me hablas...? ¿Del campo Clave ID? con el objetivo mostrar de forma detallada en otra página o en la misma?

Tengo algo de experiencia en manejo de DataGrid...:rolleyes:, dime cual es el objetivo...

juanpy 17-04-2012 18:40:53

:(Estimado colega...
 
El objetivo es pinchar la DBGrid (donde se encuentrar los numero de registro de cada cliente) y obtener el valor de la celda (columna 0, linea pinchada), para ejecutar con ese datos (datos contenido en la celda _vVar), la consulta relaciona con el datos obtenido.

Código SQL [-]
SELECT interno, nombre, apelllidos, direccion, email FROM clientes WHERE interno=_vVar

Gracias estimado...

juanpy 23-04-2012 16:07:59

Delphi for php. Sigo sin poder ver la imagen.
 
Estimado georkis,

La verdad es que la tabla contiene un campo tipo LongText en donde almacena el binario de la imagen, no existen otros campos con mas información acerca del tipo de imagen, el tamaño, etc.

El codigo binario de la imagen al principio escribe 3 caracteres "JPG".

Gracias estimado por cualquier aporte al respecto.

oceres 22-06-2012 20:52:45

Espero te sirva.
 
Buenas tardes, primeramente tienes una tabla 'pruebas'
Código SQL [-]
CREATE TABLE  prueba (
  cod_prueba varchar(10) NOT NULL,
  nombre varchar(45) DEFAULT NULL,
  fecha datetime NOT NULL,
  foto mediumblob,
  PRIMARY KEY (`cod_prueba`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

El campo foto es MEDIUMBLOB.

En el formulario RADPHP agregas objetos "Data Access" un 'database', 'table' y un 'datasource', configuras a tus necesidades agregas un objeto "Image" con las siguientes propiedades:

Binary = true
BinaryType = image/jpeg
DataField = foto
DataSource = datasource.

Espero te sirva. saludos.

juanpy 25-06-2012 21:32:29

Estimado,

La verdad es que el laboratorio presentado es el ideal, pero lamentablemente mi campo es tipo LongText y al parecer la imagen esta codificada para ser interpretada usando Visual FoxPro 9.0, de hecho al editar el campo desde MySql, muestra la frase "VFP Rocks!" inscruspada en el ascii.

Si tiene alguna referencia al respecto le agradecere sinceramente el comentario.

Gracias.


La franja horaria es GMT +2. Ahora son las 00:49:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi