Foros del Web » Programando para Internet » PHP »

Esta si esta difícil

Estas en el tema de Esta si esta difícil en el foro de PHP en Foros del Web. Hola PHPeros, les tengo una dificilisima, a ver si dan en el klavo: Hice un PHP Upload de una imagen y la meto en un ...
  #1 (permalink)  
Antiguo 08/01/2002, 11:36
 
Fecha de Ingreso: enero-2002
Ubicación: Bilbao, Vizcaya
Mensajes: 37
Antigüedad: 22 años, 3 meses
Puntos: 2
Esta si esta difícil

Hola PHPeros, les tengo una dificilisima, a ver si dan en el klavo:

Hice un PHP Upload de una imagen y la meto en un campo BLOB de una tabla MySQL, eso funciona OK. Ahora, quisiera mostrar la imagen, como le hago ?

Quisiera usar JScript, un evento para cambiarle el atributo de un IMG Tag

Gracias de antemano...
  #2 (permalink)  
Antiguo 08/01/2002, 11:43
Avatar de lical
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: $PWD
Mensajes: 1.267
Antigüedad: 22 años, 4 meses
Puntos: 0
Re: Esta si esta difícil

Sinceramente, no sé cómo hacerlo, pero si esperas un buen rendimiento, muchos campos BLOB muy largos te van a ralentizar las operaciones sobre el servidor de bases de datos un barbaridad. Mi recomendación es que subas los archivos de imagen a un directorio del servidor (que como sabrás PHP te permite hacer eso automáticamente).

Siento no poder explicartelo como pides, pero es que no lo sé

Un saludo. :)

______________
¿Piensas que el software puede ser algo mas?
<a href="http://www.zonasiete.org/" target="_blank">www.zonasiete.org</a>
Acercando el proyecto GNU/Linux a todos.
  #3 (permalink)  
Antiguo 08/01/2002, 12:02
Avatar de Ferdy
Colaborador
 
Fecha de Ingreso: junio-2001
Ubicación: España
Mensajes: 1.430
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: Esta si esta difícil

Bueno, pues te lo haré suponiendo que tu tabla tiene la siguiente estructura y que tiene como nombre fotos :<pre>
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| foto | BLOB | YES | | NULL | |
| id | int(11) | | PRI | 0 | auto_increment |
| type | varchar(20) | YES | | NULL | |
+--------+-------------+------+-----+---------+----------------+
</pre> Entonces tenemos un fichero llamado foto.php:
foto.php
<pre>
&lt;?php
if (!isset($_GET['id']))
{
exit;
}

$link = mysql_connect(&quot;host&quot;,&quot;user&quot;,&q uot;pass&quot;);
mysql_select_db(&quot;db&quot;,$link);

$res = mysql_query(&quot;SELECT * FROM fotos WHERE id = &quot;.$_GET['id'],$link);

$foto = mysql_fetch_object($res);

Header(&quot;Content-Type: &quot;.$foto-&gt;type);
echo stripslashes($foto-&gt;foto);

mysql_free_result($res);
mysql_close($link);
?&gt; </pre>

( El código va sobre la marcha, algunas cosillas puede que reporten errores ;) )

Está usando los arrays<pre>$_*[] </pre> En lugar de los <pre>$HTTP_*_VARS[] </pre> Para recoger el id de la foto, si usas una versión anterior a PHP4.1.0 deberías cambiar donde pone<pre>$_GET['id'] </pre> Por<pre>$HTTP_GET_VARS['id'] </pre>

Espero que te sirva.

Salu2.Ferdy

- 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>
  #4 (permalink)  
Antiguo 08/01/2002, 12:21
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Re: Esta si esta difícil

FErdy, amigo, te faltó aclararle, que para mostrar la foto sacada de la base, tiene que hacer lo siguiente:

&lt;img src=&quot;foto.php?id=5&quot;&gt;

por ejemplo.
Saludos

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #5 (permalink)  
Antiguo 08/01/2002, 13:28
Avatar de lical
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: $PWD
Mensajes: 1.267
Antigüedad: 22 años, 4 meses
Puntos: 0
Re: Esta si esta difícil

Vaya.... Guau!!! Una auténtica maravilla... Cuando domine yo así PHP....

¿Aún así, os parece mejor una columna BLOB para insertar imágenes que una carpeta en el servidor y una base de datos donde se siga un registro de las URLs de las imágenes?

______________
¿Piensas que el software puede ser algo mas?
<a href="http://www.zonasiete.org/" target="_blank">www.zonasiete.org</a>
Acercando el proyecto GNU/Linux a todos.
  #6 (permalink)  
Antiguo 08/01/2002, 15:36
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Re: Esta si esta difícil

Yo prefiero la segunda opcion. Una carpeta de uploads y guardar lo que sea necesario en la base.

Saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #7 (permalink)  
Antiguo 09/01/2002, 11:03
Avatar de Ferdy
Colaborador
 
Fecha de Ingreso: junio-2001
Ubicación: España
Mensajes: 1.430
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: Esta si esta difícil

Jeje, gracias Webstudio, siempre se olvida algo ;)

lical para mí lo mejor es guardar la imagen como binario en la base de datos ya que la puedes proteger perfectamente de intrusos

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>
  #8 (permalink)  
Antiguo 09/01/2002, 11:35
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Re: Esta si esta difícil

Ferdy, amigo, pero no te parece que al guardarla las imagenes alli, se comienza a hacer TODA la base bastante más lenta?
Me ha pasado cuando hice un script para hacer búsquedas de parejas, que las personas guardaba sus fotos (normalizadas todas, no habia imagenes 1024x768, por ejemplo) dentro de la base. Al comienzo, todo bien, pero cuando la base tuvo más de 300 suscriptos, CUALQUIER query comenzaba a tardar más tiempo que de costumbre.
Ahora, por protección de imágenes (o cualquier tipo de archivo en su defecto), yo prefiro guardarlas en directorios FUERA del directorio de publicacion del sitio, directorios a los que el PHP igualmente tiene acceso. El caso de las imagenes en un poco mas complicado, porque la imagen, la tengas donde la tengas, si es mostrada en el browser, el usuario puede guardarla en su disco rigido, de cualquier manera.
Es un tema para discutir largo y tendido, cada uno defenderá sus métodos y todos tendrán razón. :)

Saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #9 (permalink)  
Antiguo 09/01/2002, 12:24
Avatar de Ferdy
Colaborador
 
Fecha de Ingreso: junio-2001
Ubicación: España
Mensajes: 1.430
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: Esta si esta difícil

Bueno, a mi no me parece que vaya a crecer la Base de Datos, nunca he tenido ningún problema. Date cuenta de que muchos websites usan este sistema no solo para imágenes, sino tb para archivos comunes ( pej. un disco virtual ) y casi todos van de maravilla
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 09/01/2002, 13:09
Avatar de lical
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: $PWD
Mensajes: 1.267
Antigüedad: 22 años, 4 meses
Puntos: 0
Re: Esta si esta difícil

Pero entonces, mi opinión es que MySQL no es la base de datos más adecuada para guardar imágenes o datos en binario...

Creo que para este fin hay otras bases de datos que permiten tablas y campos más complejos aunque sean algo más lentas... Tal es el caso de Oracle y PGSQL, ¿no es así?

______________
¿Piensas que el software puede ser algo mas?
<a href="http://www.zonasiete.org/" target="_blank">www.zonasiete.org</a>
Acercando el proyecto GNU/Linux a todos.
  #11 (permalink)  
Antiguo 10/01/2002, 08:50
Avatar de Ferdy
Colaborador
 
Fecha de Ingreso: junio-2001
Ubicación: España
Mensajes: 1.430
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: Esta si esta difícil

lical, ya te digo que no he tenido nunca ningún problema con MySQL. También he trabajado con PostgreSQL y hay que decir que se comporta muy bien en este aspecto. Pero MySQL va de miedo.

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>
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 10:17.