php imagenes y datos

Download Php Imagenes y Datos

If you can't read please download the document

Upload: gatolokogatoloko

Post on 11-Jun-2015

309 views

Category:

Documents


3 download

DESCRIPTION

script para subir fotos y datos

TRANSCRIPT

SELECT * FROM Tabla ORDER BY RAND() LIMIT 1 limit 1, determina que unicamente se muestre un registro. ---------------------------------------------Cmo almacenar una imagen en MySQL (SQL)? Un amigo me preguntaba por email, cmo podra guardar las imgenes de su pgina web dentro de su base de datos mysql. Aqu os pongo un trozo de cdigo que puede ayudaros para esta tarea: - Empezamos por la tabla que contendr las imgenes: Cdigo: CREATE TABLE imagenes ( id INT NOT NULL DEFAULT 0 auto_increment, imagen LONGBLOB, tipo VARCHAR(255), PRIMARY KEY (id) ); el campo "imagen" contendr la imagen propiamente dicha (los datos binarios) y el campo "tipo" contendr el tipo MIME que identifica el formato de la imagen (p. ej. image/gif). Por supuesto esta tabla puede ser alterada, modificada, etc. para cubrir vuestras necesidades especficas. El tipo de datos BLOB (BLOB, MEDIUMBLOB y LONGBLOB) es el usado por MySQL para almacenar datos binarios. A continuacin muestro un ejemplo de como almacenar una imagen en esta tabla que hemos creado: Cdigo: // Abro el archivo de imagen para cargar sus contenidos $archivo = 'images/foto01.jpg'; $fp = fopen ($archivo, 'r'); if ($fp){ $datos = fread ($fp, filesize ($archivo)); // cargo la imagen fclose($fp); // averiguo su tipo mime $tipo_mime = 'image/jpeg'; $isize = imagesize ($archivo); if ($isize) $tipo_mime = $isize['mime']; // La guardamos en la BD $datos = base64_encode ($datos); $sql = "INSERT INTO imagenes (imagen, tipo) VALUES ('$datos', '$tipo_mime'); $res = mysql_query($sql); if (!$res) echo "Error al ejecutar la consulta ($sql)\n"; }

else echo "Error al abrir el archivo";

Para recuperar la imagen de la base de datos, el proceso que tendramos que seguir depende de cual queramos que sea el resultado. Imaginemos que lo nico que queremos es recuperar la imagen de la base de datos y mostrarla en el navegador: Cdigo: $id = intval ($_GET['id']); // imaginamos que el parmetro "id" nos llega en la URL (p. ej. imagen.php?id=5). $sql = "SELECT imagen, tipo FROM imagenes WHERE id='$id'"; $res = mysql_query ($sql); if ( $res AND mysql_num_rows($res)>0 ){ // se ha encontrado la imagen $datos = mysql_fetch_array ($res); // Indicamos al navegador el tipo de imagen que le vamos a enviar header ('Content-type: ' . $datos['tipo']); // Enviamos los datos binarios (la imagen) echo base64_decode($datos['imagen']); } else echo "Error al ejecutar la consulta ($sql)\n"; Bueno, espero que este cdigo os ayude y ya sabeis, si teneis alguna duda o problema para ponerlo en prctica, estar encantado de echaros una mano. ------------------------------------------------------