Foros del Web » Programando para Internet » PHP »

Imagenes en MySQL con PHP

Estas en el tema de Imagenes en MySQL con PHP en el foro de PHP en Foros del Web. Hola, supongo que mi duda es bastante trivial, pero no sé como enfocar el probkema. Tengo un formulario, con un campo tipo file y quiero ...
  #1 (permalink)  
Antiguo 02/01/2002, 11:28
 
Fecha de Ingreso: enero-2002
Ubicación: Barcelona
Mensajes: 279
Antigüedad: 22 años, 10 meses
Puntos: 1
Imagenes en MySQL con PHP

Hola,

supongo que mi duda es bastante trivial, pero no sé como enfocar el probkema.

Tengo un formulario, con un campo tipo file y quiero insertar en una bbdd hecha con mysql una imagen. Para ello tengo un campo en la tabla tipo BLOB.

Lo único que consigo es que me almcene la ruta donde está la imagen en mi ordenador......pero no la "sube a la base datos".

¿Qué hago mal?

Saludos y Gracias
  #2 (permalink)  
Antiguo 02/01/2002, 11:43
 
Fecha de Ingreso: enero-2002
Ubicación: Barcelona
Mensajes: 279
Antigüedad: 22 años, 10 meses
Puntos: 1
Re: Imagenes en MySQL con PHP

He mejorado!!
no podía ver la imagen porque era un .tif....ya lo sé, ya lo sé.

Pero mi problema persiste, no sube la imagen al servidor. Como lo tengo que hacer........un ftp primero?

  #3 (permalink)  
Antiguo 02/01/2002, 12:13
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años
Puntos: 5
Re: Imagenes en MySQL con PHP

bueno amigo, yo lo que hago es subir las imagenes a un directorio especifico apra imgenes mediante un script y luego en la base de datos metor la direccion de la imagen asi me la saca directamente espero k te ayude con eso
  #4 (permalink)  
Antiguo 02/01/2002, 12:56
 
Fecha de Ingreso: enero-2002
Ubicación: Dentro del corralón
Mensajes: 287
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: Imagenes en MySQL con PHP

sataca:
Para hacer lo que querés deberías hacer algo como esto:

if ($form_data) {
$form_data=$UPLOAD_PATH.substr(strrchr($form_data, "\\"), 1);
$art_imagen = addslashes(fread(fopen(stripslashes($form_data), "r"),
filesize($form_data)));
}

y suponiendo que en $form_data se cargó el path mediante un form con un tag type=file ...
hacés el insert en la base asignando al campo BLOB el valor de $art_imagen aunque te recomiendo encarecidamente que no uses este modo ya que la base crecería enormemente. Es muchisimo mejor el modo que te recomienda epplestun en el que guardás el archivo en algún directorio y guardás el path y nombre de archivo en la base.
Suerte!

Leonardo D'Angelo
Buenos Aires
Argentina
  #5 (permalink)  
Antiguo 02/01/2002, 18:16
Avatar de Ferdy
Colaborador
 
Fecha de Ingreso: junio-2001
Ubicación: España
Mensajes: 1.430
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: Imagenes en MySQL con PHP

Pues yo uso ese método y es muy bueno, ya que con el directorio no puedes proteger la imágen de personas que no deberían verla, y sin embargo con la BD si. Sería hasta interesante montar un sistema de ficheros para la web sobre la BD.

Salu2

- Fernando Pereda ( Ferdy )
<center><a href="http://www.ferdyx.org/firmas.php"><img src="http://www.ferdyx.org/reg_tira.jpg" border="0"></a></center>
  #6 (permalink)  
Antiguo 02/01/2002, 20:02
 
Fecha de Ingreso: enero-2002
Ubicación: Dentro del corralón
Mensajes: 287
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: Imagenes en MySQL con PHP

Ferdy:
¿De qué modo podrían ver tus imagenes?

Leonardo D'Angelo
Buenos Aires
Argentina
  #7 (permalink)  
Antiguo 02/01/2002, 23:23
 
Fecha de Ingreso: noviembre-2001
Mensajes: 415
Antigüedad: 23 años
Puntos: 0
Re: Imagenes en MySQL con PHP

mediante algun script que restringe quien, como, cuando y de donde pueden acceder a tal o cual imagen.

no se PHP, pero leyendo el manual:

1) cuando uno manda por un formulario un input file, el form tiene que ser del tipo, multipart/form-data
(haciendo el form de esta manera: &lt;form enctype=&quot;multipart/form-data&quot; name=&quot;form&quot; method=&quot;post&quot; action=&quot;script.php&quot;&gt;)

2) ANTES del &lt;input file&gt; tiene que haber un input hidden diciendo el tamaño maximo del archivo (expresado en bytes):
&lt;input type=&quot;hidden&quot; name=&quot;MAX_FILE_SIZE&quot; value=&quot;10000&quot;&gt;

3) en el php recibe y lo pone en el directorio temporal del servidor, habra 4 variables:

$userfile - el nombre del archivo temporal. (que generalmente es un nombre al azar, es solo para abrirlo y mirar el contenido).
$userfile_name - el nombre original del archivo que se envió al script.
$userfile_size - el tamaño del archivo.
$userfile_type - El tipo MIME del archivo. en el caso de las imagenes ESTO ES IMPORTANTE si se guarda en una BD. porque cuando queremos mostrar alguna imagen con nuestro script, tenemos que devolverle al server el content type.

para los que no lo saben, cuando uno dice antes de enviar un HTML &quot;Content-type: text/html\n\n&quot; es solo 1 tipo de dato que estamos enviando. si enviamos &quot;Content-type: image/jpeg&quot; y luego el contenido de una imagen JPG, es lo mismo que enviar una imagen.

O sea, te conviene tener ese campo BLOB para los datos, y un campo varchar de unos 32, para guardar el content-type, entonces cuando queres ver la imagen, envias 1ro el content-type y despues la imagen en si.

de esa manera es como se guardan las imagenes en la BD.



PHPeros: como puede ser!!!! vi esta duda varias veces y nunca la respondieron!!!! [/B]
  #8 (permalink)  
Antiguo 02/01/2002, 23:28
 
Fecha de Ingreso: noviembre-2001
Mensajes: 415
Antigüedad: 23 años
Puntos: 0
Re: Imagenes en MySQL con PHP

no uses este modo ya que la base crecería enormemente

el archivo este en un lado u otro es lo mismo =&gt; tiene el mismo tamaño. si hay alguna limitacion en el tamaño de la base de datos en el servidor... si, es cierto. pero tenerlo dentro de una BD es mucho mas versatil con respecto a seguridad y limitacion de accesos por nombrar algunas razones.
  #9 (permalink)  
Antiguo 03/01/2002, 03:41
Avatar de Ferdy
Colaborador
 
Fecha de Ingreso: junio-2001
Ubicación: España
Mensajes: 1.430
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: Imagenes en MySQL con PHP

Pues sencillamente yo siempre he optado por usar la BD ya que como dice MMontes es mucho más versátil. ldangelo pueden verlas en cuanto sean capaces de averiguar el directorio en el que las guardas ( no es dificil )

Salu2


- Fernando Pereda ( Ferdy )
<center><a href="http://www.ferdyx.org/firmas.php"><img src="http://www.ferdyx.org/reg_tira.jpg" border="0"></a></center>
  #10 (permalink)  
Antiguo 03/01/2002, 08:12
 
Fecha de Ingreso: enero-2002
Ubicación: Dentro del corralón
Mensajes: 287
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: Imagenes en MySQL con PHP

OK. Ambas opciones tienen sus pros y sus contras. Yo me referia a que tengo fobia de manejar bases de datos extremadamente grandes por malas experiencias de tener que recuperar bases Informix de varios GB &quot;a pedal&quot;. Es valida la forma que dicen. De hecho el ejemplo que pase almacena la imagen en la base. No me queda claro el tema de acceder a los directorios. Si tenes bien configurado tu servidor no deberias y si ya conoces el directorio y el nombre del archivo de imagen es porque tuviste permiso de verla previamente. Pero bueno, es solo un comentario y repito que ambas soluciones son validas.
Saludos amigos!.

Leonardo D'Angelo
Buenos Aires
Argentina
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 21:45.