Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Insertar imagen en bd mysql

Estas en el tema de Insertar imagen en bd mysql en el foro de Frameworks JS en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 21/07/2011, 05:35
Avatar de francisco93  
Fecha de Ingreso: julio-2011
Ubicación: Soy ciudadano del mundo, pero vivo en Canarias :)
Mensajes: 58
Antigüedad: 12 años, 9 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
  #2 (permalink)  
Antiguo 21/07/2011, 22:09
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Insertar imagen en bd mysql

javascript no tiene acceso al IO, por lo tanto no puede leer ni escribir archivos, así que es imposible enviar archivos con AJAX.

alternativas para emular un ajax upload:

-iframes
-adobe flash, applets de java, ms silverlight, afines.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 22/07/2011, 14:04
Avatar de francisco93  
Fecha de Ingreso: julio-2011
Ubicación: Soy ciudadano del mundo, pero vivo en Canarias :)
Mensajes: 58
Antigüedad: 12 años, 9 meses
Puntos: 1
De acuerdo Respuesta: Insertar imagen en bd mysql

Si ya despues de haber buscado y buscado me di cuenta que ni siquiera existia de todas formas gracias por responder estoy utilizando un iframe sobre tus otras alternativas si no te es molestia me podrias explicar un poco sobre ellas y si son mejor que utilizar un iframe, gracias de nuevo

Etiquetas: ajax, jquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:50.