Comunidad de diseño web y desarrollo en internet online

grabacion de imagenes en BD Mysql

Citar            
MensajeEscrito el 22 Jun 2007 04:45 am
Hola
Estoy intentando grabar en una tabla de mi base de datos Mysql fotografias y al momento de abrir el file con fopen() de PHP me da el error que presnto al final de esta nota. El resto de los datos los graba perfectamente solo me faltan las imagenes. Al pasar la ruta de mi archivo imagen contenido en mi disco duro del formulario html al script php es que desaparece. POR FAVOR AYUDENME.


En formulario html

Código :

<form action="datos_cli.php" enctype="multipart/form-data" 

method="post" name="" id="">
.....

 <input type="hidden" name="MAX_FILE_SIZE" value="30000">
 <span class="Estilo9">Seleccionar archivo: </span>
 <input name="imagen1" type="file">



en
php grabador

Código :

$imagen1=$_POST['imagen1'] ;   
$ima1 = addslashes(fread(fopen($imagen1, "r"), filesize($imagen1)));




da siguente error

Warning: fread(): supplied argument is not a valid stream resource in

/home/helixdat/public_html/parejas/datos_cli.php on line 84


al verificar contenido de ruta del file es blanco (q deberia estar

contenido en $imagen1)

SALUDOS Y GRACIAS DE ANTEMANO...! :shock:

Por Thor

11 de clabLevel



 

msie
Citar            
MensajeEscrito el 22 Jun 2007 11:43 am
yo tengo un problema similar... tengo un formulario php que almacen los datos en una bd mysql, pero le quiero añadir la opcion de subir una imagen, y que esta imagen la guarde en una carpeta en concreto dentro del servidor, y que en la base de datos almacene el nombre de la imagen con la correspondiente extension... pero esto no tengo mucha idea de como hacerlo... si alguien me hecha un cable a mi tambien...

Por JotaeRe

96 de clabLevel



 

msie7
Citar            
MensajeEscrito el 22 Jun 2007 12:35 pm
Hola Thor, lo que plantea JotaeRe es lo más adecuado a tu caso, no guardes una imagen completa en tu base de datos, no es óptimo, guarda su ruta. Ahora esto es muy simple, mira este tutorial para saber como subir imágenes a un servidor todo lo que faltaría sería meter la ruta de la imagen en un variable string y de ahí a la base de datos. Espero les sirva a ambos.

Por Aoyama

BOFH

6224 de clabLevel

6 tutoriales
12 articulos

Genero:Masculino   Anime Bloggers Bastard Operators From Hell

Webdesigner & Developer, en mis ratos libres bebo café por litros.

firefox
Citar            
MensajeEscrito el 25 Jun 2007 05:15 pm
muxas mercis tiu luego lo pruebo pero tiene muy buena pinta el tutorial ;)

Por JotaeRe

96 de clabLevel



 

msie7
Citar            
MensajeEscrito el 05 Jul 2007 12:37 am
miren, si aun les interesa guardar la imagen en una basa de datos
aki tengo un codigo para hacer eso

Código :

<?php
/*
*****************************************
Creacion de la Tabla que guarda la Imagen
*****************************************

CREATE TABLE `Imagenes` (
`Cod` INT NOT NULL AUTO_INCREMENT ,
`Imagen` LONGBLOB NOT NULL ,
`Tipo` VARCHAR( 200 ) NOT NULL ,
`Fecha` DATETIME NOT NULL ,
PRIMARY KEY ( `Cod` )
);

*/

function ConectarBD()
{
    mysql_connect("localhost","user","password");
    mysql_select_db("test");
}

if (isset($_POST[subir]))
{
    if ( $_FILES[imagen][name]!="" )
    {
        if ($_FILES[imagen][type]=="image/jpeg" or $_FILES[imagen][type]=="image/png" or $_FILES[imagen][type]=="image/gif")
        {
            // se lee el contenido de la imagen original
            $gestor = fopen($_FILES[imagen][tmp_name], "r");
            $img_data = '';
            while (!feof($gestor))
            {
                $img_data.= addslashes(fread($gestor, 8192));
            }
            fclose($gestor);

            // se inserta el recorte y la vista previa a la base de datos
            $sql_guardar_imagen="INSERT INTO Imagenes"
            ." (Imagen, Tipo, Fecha)"
            ." VALUES"
            ." ('$img_data', '".$_FILES[imagen][type]."', NOW())";

            ConectarBD();
            mysql_query($sql_guardar_imagen)
            or die ("Hubo un error al intentar guardar la imagen: ".mysql_error());
            $resultado="ok";
        }
        else
        {
            $msg="Seleccione una imagen en formato JPG (".$_FILES[imagen][type]."--". $_FILES[imagen][name].")";
        }
    }
    else
    {
        $msg="Complete todos los datos";
    }
}
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>
  <title>Subir Imagen</title>
</head>

<body>
  <?php if ($msg!="") echo "<h2>$msg</h2>"; ?>
  <form method="post" action="<?php echo $_SERVER[PHP_SELF] ?>" enctype="multipart/form-data">
    Seleccione una imagen <input type="file" name="imagen"><br>
    <input type="submit" name="subir" value="Subir Imagen">
    <input type="hidden" name="MAX_FILE_SIZE" value="3000">
  </form>
</body>



no creo que tenga mucho que explicar como funciona, pero si alguien quiere saber que pregunte
realmente este codigo ya no lo uso, por que es mas facil y funcioanl guardar el nombre le la imagen en la base de datos y la imagen subirla a alguna carpeta

Por kraysk

3 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.