image
Inicio » Foros » PHP

Foro sobre PHP

extraer imagen de sql con php

Volver al foro | Responder | Añadir nuevo tema


De: yedi
Fecha: 21/06/2006
Mensaje:

HOLA QUISIERA SABER COMO EXTRAIGO DE UNA BD DE SQL SERVER UNA IMAGEN A MI PAGINA WEB POR MEDIO DE PHP, EL CAMPO ES DE TIPO IMAGE, REALMENTE NO TENGO UNA IDEA CLARA DE COMO LO PUEDA HACER ASI Q AGRADECERIA MUCHO SU AYUDA O BIEN DE DONDE PUEDO OBTENER INFORMACION PARA HACER ESTE PROCESO. GRACIAS


Quizás le interese
De: mario
Util para: 0 personas

Fecha: 21/06/2006
Mensaje:

bueno este tema a mi me costao un poco pero la resolucion es sencilla, espero que me entiendas la eplicacion:

Si lo que quieres hacer es mostrar la imagen sola en una pagina sin ningun formato lo que haces es:

<?php
  include("conexion.php");
  $db = mysql_select_db("xx",$conexion);
  $query  = "select* from xxxxx"; 
  $sql = mysql_query($query); 
   $fila = mysql_fetch_array($sql);

 /*deberias tener en la base de datos no solo la imagen sino tambien el tipo mime de la imagen, ya sea jpeg,gif etc, ya que este deberas pasarlo como argumento en la etiqueta meta */
  $mime = $fila[mime_type];
  $imagen = $fila[foto];   
  $contenido = "Content-type: $mime";
  header($contenido);
  echo $imagen;
  /*con hecho mostramos el contenido de la imagen, destacar que antes de enviar la imagen debemos enviar la cabecera content-type:....*/
  mysql_close($conexion);

?>

Pero si lo que quieres es mostrar la imagen en alguna tabla o algun especifico de la pagina que estas desarrollando deberias, tener el codigo anterior en una pagina separada, y luego hacer algo como lo siguiente:

<img src=prueba_imagen.php?variable=xxx>

donde en variable pasarias que imagen o que campo de la base de datos quieresmostrar.

Espero que te sirva, saludos.

 

 





De: iedy
Util para: 1 personas

Fecha: 21/06/2006
Mensaje:

Me gusta mucho!

Si no es molestia.
Podrías poner un ejemplo para cargar la imagen en la base de datos?


mysql_query("INSERT INTO xxxxx (foto,mime_type) VALUES ('$imagen','$mime')");

No se de que forma hay que cargar la imagen en la variable $imagen.
quizás:
$imagen=readfile("nombre_archivo.jpg");
O algo parecido?

Gracias.




De: mario
Util para: 4 personas

Fecha: 02/07/2006
Mensaje:

Perdon por la demora pero es que no habia visto tu respuesta, aca te escribo un codigo que guarda la imagen y una miniatura de esta y el tipo mime de la imagen:

<?php
define("ALTURA", 100);
$mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");
// Variables de la foto
$name = $_FILES["foto"]["name"];
$type = $_FILES["foto"]["type"];
$tmp_name = $_FILES["foto"]["tmp_name"];
$size = $_FILES["foto"]["size"];
// Verificamos si el archivo es una imagen válida
if(!in_array($type, $mimetypes))
die("El archivo que subiste no es una imagen válida");
// Creando el thumbnail
switch($type) {
case $mimetypes[0]:
case $mimetypes[1]:
$img = imagecreatefromjpeg($tmp_name);
break;
case $mimetypes[2]:
$img = imagecreatefromgif($tmp_name);
break;
case $mimetypes[3]:
$img = imagecreatefrompng($tmp_name);
break;
}
$datos = getimagesize($tmp_name);
$ratio = ($datos[1]/ALTURA);
$ancho = round($datos[0]/$ratio);
$thumb = imagecreatetruecolor($ancho, ALTURA);
imagecopyresized($thumb, $img, 0, 0, 0, 0, $ancho, ALTURA, $datos[0], $datos[1]);
switch($type) {
case $mimetypes[0]:
case $mimetypes[1]:
imagejpeg($thumb, NAMETHUMB);
break;
case $mimetypes[2]:
imagegif($thumb, NAMETHUMB);
break;
case $mimetypes[3]:
imagepng($thumb, NAMETHUMB);
break;
}
// Extrae los contenidos de las fotos
# contenido de la foto original
$fp = fopen($tmp_name, "rb");
$tfoto = fread($fp, filesize($tmp_name));
$tfoto = addslashes($tfoto);
fclose($fp);
# contenido del thumbnail
$fp = fopen(NAMETHUMB, "rb");
$tthumb = fread($fp, filesize(NAMETHUMB));
$tthumb = addslashes($tthumb);
fclose($fp);
// Borra archivos temporales si es que existen
@unlink($tmp_name);
@unlink(NAMETHUMB);
?>

ahora lo unico que deberias hacer para terminar es guardar en tu base de datos las variables
$tfoto , $tthumb y $type.
Otra cosa que me gustaria decirte es que no es muy recomendable guardar fotos en las base de datos ya que esto no solo que incrementa su tamaño sino que tambien empeora el rendimiento.
Lo que combiene hacer es guardar en la base de datos el path donde se encuentra la foto con el nombre de la foto, de esta forma tendrias un directorio con todas las fotos y en la base de datos solo las rutas hasta cada imagen, pero es solo un consejo.

Bueno lo que no te dije antes es que en la pagina donde eliges de donde cargar la imagen deberias tener una etiqueta del tipo:
por ejemplo algo asi, con los nombres que tu le pongas:
<input name="foto" type="file" id="foto" size="xx">
y como puedes ver en las primeras lineas del codigo($name = $_FILES["foto"]["name"];) + especificamente en la del parentesis, la imagen se toma de la etiqueta anterior.
Espero que te sirva, suerte



Volver al foro | Responder | Añadir nuevo tema

Quizás le interese:

WebEstilo.com no se hace responsable de las opiniones que los usuarios puedan verter en cualquiera de los foros existentes.

Si te solucionó el problema pulsa en G+1


Gracias!






Comparte



Última modificación:31 de Agosto de 2017. Spain - Espa�a.
© 1998-2004 por . Todos los derechos reservados.