Buenas, estoy haciendo una pequeña web que carga unas imágenes en la bbdd y después las recupera, hasta ahí todo correcto, el problema viene cuando quiero insertar las imágenes, me he hecho un formulario con su php para cargar las imágenes a la bbdd pero después a la hora de mostrarlas no salen y si miro en phpMyAdmin si que aparecen, pero lo más curioso es que si inserto las imágenes desde phpMyAdmin si que las puedo leer bien desde la bbdd y mostrarlas bien, bueno en realidad de tres imágenes por fila solo muestra 2 bien pero eso será otro error diferente que habrá que corregir. Añado los scripts para que lo veáis y juzguéis.
Formulario html <h2>Sistema de actualizaci
ón
</h2> <form enctype="multipart/form-data" method="post" action="upload.php"> <p>Imagen Full (Grande 1000x750):
<input type="file" name="full"></p> <p>Imagen medium (Mediana 500x375):
<input type="file" name="medium"></p> <p>Imagen Small (Peque
ña 100x75):
<input type="file" name="small"></p> <p><input type="submit" name="send" value="Enviar"></p>
Script que procesa el forulario<?php
require_once 'bd.php';
function leer_fichero($name){
$fp = fopen ($name, 'r'); if ($fp){
}
return $datos;
}
function insertar($imagen_full_bin, $imagen_medium_bin, $imagen_small_bin, $titulo, $descripcion){
$sql = "INSERT INTO archivos (id, img_full, img_medium, img_small, titulo, descripcion) VALUES ('', '$imagen_full_bin', '$imagen_medium_bin', '$imagen_small_bin', '$titulo', '$descripcion')";
mysql_query($sql) or
die("No se pudo insertar los datos en la base de datos."); }
// Comienza el script
$img_full = $_FILES['full']['tmp_name'];
$img_medium = $_FILES['medium']['tmp_name'];
$img_small = $_FILES['small']['tmp_name'];
$imagen_full_bin = leer_fichero($img_full);
$imagen_medium_bin = leer_fichero($img_medium);
$imagen_small_bin = leer_fichero($img_small);
$titulo = $_POST['titulo'];
$descripcion = $_POST['descripcion'];
insertar($imagen_full_bin, $imagen_medium_bin, $imagen_small_bin, $titulo, $descripcion);
header("Location: upload.html"); // si ha ido todo bien ?>
Script que muestra las imágenes<?php
require_once 'bd.php';
$id = (isset($_GET['id']) ?
$_GET['id'] : exit()); $tam = (isset($_GET['tam']) ?
$_GET['tam'] : exit());
switch($tam){
case "full":
$sql = "SELECT img_full FROM archivos WHERE id = $id";
header("Content-type: image/jpg"); echo $img;
break;
case "medium":
$sql = "SELECT img_medium FROM archivos WHERE id = $id";
header("Content-type: image/jpg"); echo $img;
break;
case "small":
$sql = "SELECT img_small FROM archivos WHERE id = $id";
header("Content-type: image/jpg"); echo $img;
break;
}
?>
Tabla de MySqlCREATE TABLE IF NOT EXISTS `archivos` (
`id` INT NOT NULL AUTO_INCREMENT,
`img_full` longblob NOT NULL,
`img_medium` longblob NOT NULL,
`img_small` longblob NOT NULL,
`titulo` VARCHAR(50) COLLATE utf8_spanish_ci NOT NULL,
`descripcion` VARCHAR(100) COLLATE utf8_spanish_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;