elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  PHP + MySql + BLOB
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: PHP + MySql + BLOB  (Leído 2,776 veces)
IWKY

Desconectado Desconectado

Mensajes: 272



Ver Perfil
PHP + MySql + BLOB
« en: 1 Abril 2009, 02:55 am »

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
Código
  1. <h2>Sistema de actualizaci&oacute;n</h2>
  2. <form enctype="multipart/form-data" method="post" action="upload.php">
  3. <p>Imagen Full (Grande 1000x750):<input type="file" name="full"></p>
  4. <p>Imagen medium (Mediana 500x375):<input type="file" name="medium"></p>
  5. <p>Imagen Small (Peque&ntilde;a 100x75):<input type="file" name="small"></p>
  6. <p>TITULO: <textarea name="titulo" rows="2" cols="50"></textarea></p>
  7. <p>DESCRIPCI&Oacute;N: <textarea name="descripcion" rows="5" cols="50"></textarea></p>
  8. <p><input type="submit" name="send" value="Enviar"></p>
  9. </form>
  10. </body>
  11. </html>
  12.  

Script que procesa el forulario
Código
  1. <?php
  2. require_once 'bd.php';
  3.  
  4. function leer_fichero($name){
  5. $fp = fopen ($name, 'r');
  6. if ($fp){
  7. $datos = fread ($fp, filesize ($name)); // cargo la imagen
  8. $datos = addslashes($datos);
  9. }
  10. fclose($fp);
  11. return $datos;
  12. }
  13.  
  14. function insertar($imagen_full_bin, $imagen_medium_bin, $imagen_small_bin, $titulo, $descripcion){
  15. $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')";
  16. mysql_query($sql) or die("No se pudo insertar los datos en la base de datos.");
  17. }
  18. // Comienza el script
  19.  
  20. $img_full = $_FILES['full']['tmp_name'];
  21. $img_medium = $_FILES['medium']['tmp_name'];
  22. $img_small = $_FILES['small']['tmp_name'];
  23.  
  24. $imagen_full_bin = leer_fichero($img_full);
  25. $imagen_medium_bin = leer_fichero($img_medium);
  26. $imagen_small_bin = leer_fichero($img_small);
  27.  
  28. $titulo = $_POST['titulo'];
  29. $descripcion = $_POST['descripcion'];
  30.  
  31. insertar($imagen_full_bin, $imagen_medium_bin, $imagen_small_bin, $titulo, $descripcion);
  32. header("Location: upload.html");  // si ha ido todo bien
  33. ?>
  34.  


Script que muestra las imágenes
Código
  1. <?php
  2.  
  3. require_once 'bd.php';
  4.  
  5. $id = (isset($_GET['id']) ? $_GET['id'] : exit());
  6. $tam = (isset($_GET['tam']) ? $_GET['tam'] : exit());
  7.  
  8. switch($tam){
  9. case "full":
  10. $sql = "SELECT img_full FROM archivos WHERE id = $id";
  11. header("Content-type: image/jpg");
  12. echo $img;
  13. break;
  14. case "medium":
  15. $sql = "SELECT img_medium FROM archivos WHERE id = $id";
  16. header("Content-type: image/jpg");
  17. echo $img;
  18. break;
  19. case "small":
  20. $sql = "SELECT img_small FROM archivos WHERE id = $id";
  21. header("Content-type: image/jpg");
  22. echo $img;
  23. break;
  24. }
  25.  
  26. ?>
  27.  

Tabla de MySql
Código
  1. CREATE TABLE IF NOT EXISTS `archivos` (
  2.  `id` INT NOT NULL AUTO_INCREMENT,
  3.  `img_full` longblob NOT NULL,
  4.  `img_medium` longblob NOT NULL,
  5.  `img_small` longblob NOT NULL,
  6.  `titulo` VARCHAR(50) COLLATE utf8_spanish_ci NOT NULL,
  7.  `descripcion` VARCHAR(100) COLLATE utf8_spanish_ci NOT NULL,
  8.  PRIMARY KEY  (`id`)
  9. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;
  10.  


En línea

Por internet libre http://red-sostenible.net/
El mejor momento de Dragon Ball Z --> Aqui
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
campo tipo blob mysql
Bases de Datos
kakashi20 0 2,379 Último mensaje 28 Mayo 2012, 22:12 pm
por kakashi20
Error al insertar BLOB con libmysql.dll
Programación C/C++
LucasBols 2 1,913 Último mensaje 31 Mayo 2012, 18:58 pm
por LucasBols
campos blob en VB&
Programación Visual Basic
elfantasma-- 0 1,949 Último mensaje 6 Febrero 2013, 15:47 pm
por elfantasma--
[Resuelto] Leer un blob
Desarrollo Web
dimitrix 2 1,816 Último mensaje 16 Marzo 2015, 20:47 pm
por dimitrix
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines