Ver Mensaje Individual
  #4 (permalink)  
Antiguo 24/08/2011, 06:23
Choochex
 
Fecha de Ingreso: agosto-2011
Mensajes: 18
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: <Ayuda>Mostrar imagenes desde un campo de blob SQL</Ayuda>

Con ese script subo las ima a la base de datos..


Código PHP:
Ver original
  1. <?php
  2.  
  3. // Verificamos que el formulario no ha sido enviado aun
  4.  
  5. $postback = (isset($_POST["enviar"])) ? true : false;
  6.  
  7. if($postback){
  8.  
  9.   // Nivel de errores
  10.  
  11.   error_reporting(E_ALL);
  12.  
  13.   // Constantes
  14.  
  15.   # Altura de el thumbnail en p�xeles
  16.  
  17.   define("ALTURA", 100);
  18.  
  19.   # Nombre del archivo temporal del thumbnail
  20.  
  21.   define("NAMETHUMB", "c:/windows/temp/thumbtemp"); //Esto en servidores Linux, en Windows podr�a ser:
  22.  
  23. // define("NAMETHUMB", "c:/windows/temp/thumbtemp"); y te olvidas de los problemas de permisos
  24.  
  25.   # Servidor de base de datos
  26.  
  27.   define("DBHOST", "localhost");
  28.  
  29.   # nombre de la base de datos
  30.  
  31.   define("DBNAME", "plantillas");
  32.  
  33.   # Usuario de base de datos
  34.  
  35.   define("DBUSER", "root");
  36.  
  37.   # Password de base de datos
  38.  
  39.   define("DBPASSWORD", "Elamor16");
  40.  
  41.   // Mime types permitidos
  42.  
  43.   $mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");
  44.  
  45.   // Variables de la foto
  46.  
  47.   $name = $_FILES["foto"]["name"];
  48.  
  49.   $type = $_FILES["foto"]["type"];
  50.  
  51.   $tmp_name = $_FILES["foto"]["tmp_name"];
  52.  
  53.   $size = $_FILES["foto"]["size"];
  54.  
  55.   // Verificamos si el archivo es una imagen v�lida
  56.  
  57.   if(!in_array($type, $mimetypes))
  58.  
  59.     die("El archivo que subiste no es una imagen v�lida");
  60.  
  61.   // Creando el thumbnail
  62.  
  63.   switch($type) {
  64.  
  65.     case $mimetypes[0]:
  66.  
  67.     case $mimetypes[1]:
  68.  
  69.       $img = imagecreatefromjpeg($tmp_name);
  70.  
  71.       break;
  72.  
  73.     case $mimetypes[2]:
  74.  
  75.       $img = imagecreatefromgif($tmp_name);
  76.  
  77.       break;
  78.  
  79.     case $mimetypes[3]:
  80.  
  81.       $img = imagecreatefrompng($tmp_name);
  82.  
  83.       break;
  84.  
  85.   }
  86.  
  87.   $datos = getimagesize($tmp_name);
  88.  
  89.   $ratio = ($datos[1]/ALTURA);
  90.  
  91.   $ancho = round($datos[0]/$ratio);
  92.  
  93.   $thumb = imagecreatetruecolor($ancho, ALTURA);
  94.  
  95.   imagecopyresized($thumb, $img, 0, 0, 0, 0, $ancho, ALTURA, $datos[0], $datos[1]);
  96.  
  97.   switch($type) {
  98.  
  99.     case $mimetypes[0]:
  100.  
  101.     case $mimetypes[1]:
  102.  
  103.       imagejpeg($thumb, NAMETHUMB);
  104.  
  105.           break;
  106.  
  107.     case $mimetypes[2]:
  108.  
  109.       imagegif($thumb, NAMETHUMB);
  110.  
  111.       break;
  112.  
  113.     case $mimetypes[3]:
  114.  
  115.       imagepng($thumb, NAMETHUMB);
  116.  
  117.       break;
  118.  
  119.   }
  120.  
  121.   // Extrae los contenidos de las fotos
  122.  
  123.   # contenido de la foto original
  124.  
  125.   $fp = fopen($tmp_name, "rb");
  126.  
  127.   $tfoto = fread($fp, filesize($tmp_name));
  128.  
  129.   $tfoto = addslashes($tfoto);
  130.  
  131.   fclose($fp);
  132.  
  133.   # contenido del thumbnail
  134.  
  135.   $fp = fopen(NAMETHUMB, "rb");
  136.  
  137.   $tthumb = fread($fp, filesize(NAMETHUMB));
  138.  
  139.   $tthumb = addslashes($tthumb);
  140.  
  141.   fclose($fp);
  142.  
  143.   // Borra archivos temporales si es que existen
  144.  
  145.   @unlink($tmp_name);
  146.  
  147.   @unlink(NAMETHUMB);
  148.  
  149.   // Guardamos todo en la base de datos
  150.  
  151.   #nombre de la foto
  152.  
  153.   $nombre = $_POST["nombre"];
  154.  
  155.   $link = mysql_connect(DBHOST, DBUSER, DBPASSWORD) or die(mysql_error($link));;
  156.  
  157.   mysql_select_db(DBNAME, $link) or die(mysql_error($link));
  158.  
  159.   $sql = "INSERT INTO imagenes(nombre, foto, thumb, mime)
  160.  
  161.    VALUES
  162.  
  163.    ('$nombre', '$tfoto', '$tthumb', '$type')";
  164.  
  165.   mysql_query($sql, $link) or die(mysql_error($link));
  166.  
  167.   echo "Fotos guardadas";
  168.  
  169.   exit();
  170.  
  171. }
  172.  
  173. ?>
  174. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  175.  
  176.         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  177.  
  178. <html xmlns="http://www.w3.org/1999/xhtml">
  179.  
  180. <head>
  181.  
  182. <title>Imagen a Blob</title>
  183.  
  184. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  185.  
  186. </head>
  187.  
  188. <body>
  189.  
  190. <form name="frmimage" id="frmimage" method="post"
  191.  
  192.         enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'];?>">
  193.  
  194.         Nombre: <input type="text" id="nombre" name="nombre" /><br />
  195.  
  196.         Imagen: <input type="file" id="foto" name="foto" /><br />
  197.  
  198.         <input type="submit" name="enviar" id="enviar" value="Guardar" />
  199.  
  200. </form>
  201.  
  202. </body>
  203.  
  204. </html>