Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/07/2011, 05:35
Avatar de francisco93
francisco93
 
Fecha de Ingreso: julio-2011
Ubicación: Soy ciudadano del mundo, pero vivo en Canarias :)
Mensajes: 58
Antigüedad: 13 años, 4 meses
Puntos: 1
Insertar imagen en bd mysql

Antetodo muchas gracias por leer les planteo una duda yo se como subir una imagen en php a mysql pero soy nuevo en ajax y quiero "actualizarme" por asi decirlo bueno lo que intento es pues eso subir una imagen a una base de datos esto es lo que he adelantado pero sigo sin lograrlo

Este es el archivo que carga los datos he comentado algunas loneas porque no me hacian falta este script lo encontro en internet no lo hice yo:

Código PHP:
<?php
// Verificamos que el formulario no ha sido enviado aun
$postback = (isset($_POST["submit"])) ? true false;
if(
$postback){
  
// Nivel de errores
  
error_reporting(E_ALL);
  
// Constantes
  # Altura de el thumbnail en píxeles
  
define("ALTURA"100);
  
# Nombre del archivo temporal del thumbnail
  
define("NAMETHUMB""c:/windows/temp/thumbtemp"); //Esto en servidores Linux /tmp/thumbtemp, en Windows podría ser:
// define("NAMETHUMB", "c:/windows/temp/thumbtemp"); y te olvidas de los problemas de permisos
  # Servidor de base de datos

  
$mimetypes = array("image/jpg",  "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]:
     
$img imagecreatefromjpeg($tmp_name);
      break;
    case 
$mimetypes[2]:
      
$img imagecreatefromjpeg($tmp_name);
      break;
    case 
$mimetypes[3]:
      
$img imagecreatefromgif($tmp_name);
      break;
    case 
$mimetypes[4]:
      
$img imagecreatefrompng($tmp_name);
      break;
  }
  
$datos getimagesize($tmp_name);
  
$ratio = ($datos[1]/ALTURA);
  
$ancho round($datos[0]/$ratio);
  
$thumb imagecreatetruecolor($anchoALTURA);
  
imagecopyresized($thumb$img0000$anchoALTURA$datos[0], $datos[1]);
  switch(
$type) {
    case 
$mimetypes[0]:
    case 
$mimetypes[1]:
      
imagejpeg($thumbNAMETHUMB);
          break;
    case 
$mimetypes[2]:
      
imagegif($thumbNAMETHUMB);
      break;
    case 
$mimetypes[3]:
      
imagepng($thumbNAMETHUMB);
      break;
  }
  
// Extrae los contenidos de las fotos
  # contenido de la foto original
  
$fp fopen($tmp_name"rb");
  
$tfoto fread($fpfilesize($tmp_name));
  
$tfoto addslashes($tfoto);
  
fclose($fp);
  
# contenido del thumbnail
  
$fp fopen(NAMETHUMB"rb");
  
$tthumb fread($fpfilesize(NAMETHUMB));
  
$tthumb addslashes($tthumb);
  
fclose($fp);
  
// Borra archivos temporales si es que existen
  
@unlink($tmp_name);
  @
unlink(NAMETHUMB);
  
// Guardamos todo en la base de datos
  #nombre de la foto
   
include "conexion.php";
  
//$sql = "INSERT INTO miniaturas( imgperfil, foto)
    //VALUES
    //('$tthumb', '$tfoto')";
 // mysql_query($sql) or die(mysql_error(mysql_connect));
  
$sql2 "INSERT INTO fotos( foto)
    VALUES
    ('$tfoto')"
;
  
mysql_query($sql2) or die(mysql_error(mysql_connect));
  echo 
"Fotos guardadas";
  exit();
}
?>
Este es el html que dentro tiene el script

Código PHP:
<html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
title>Imagen a Blob</title>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</
head>
<
body>
<
form action="insertarimg.php" name="frmimage" id="frmimage" method="post"
        
enctype="multipart/form-data" >
        
Nombre: <input type="text" id="nombre" name="nombre" /><br />
  
Imagen: <br />
        <
input type="file" id="foto" name="foto" />
        <
input type="submit" name="submit" id="submit" value="Guardar" />
</
form>
<
script language="javascript" src="jquery-1.3.min.js"></script>
<script language="javascript">
$(document).ready(function() {
   // Esta primera parte crea un loader no es necesaria
    $().ajaxStart(function() {
        $('#loading').show();
        $('#result').hide();
    }).ajaxStop(function() {
        $('#loading').hide();
        $('#result').fadeIn('slow');
    });
   // Interceptamos el evento submit
    $('#form, #fat, #frmimage').submit(function() {
  // Enviamos el formulario usando AJAX
        $.ajax({
            type: 'POST',
            url: $(this).attr('action'),
            data: $(this).serialize(),
            // Mostramos un mensaje con la respuesta de PHP
            
            success: function(data) {
                $('#result').html(data);
            }
        })        
        return false;
    }); 
     }); 
</script>
</body>
</html> 
Gracias y espero puedan ayudarme