Hola
como puedo añadir imagenes a una base de datos mysql y que tipo de campo seria.
Quisiera saber como puedo hacerlo desde php.
Gracias
| ||||
yo creo que podrias hacerlo en un campo que almacene los datos en forma binaria; y creeria que podrias manipularlo desde php.
__________________ | Cabeza De Raton | |
| |||
Hola, Si lo que quieres es guardar el fichero en la base de datos, revisa http://www.forosdelweb.com/s/msg127775.html Otra opcion es solo guardar el nombre y ruta del fichero en el servidor, y guardar el fichero en el sistema de ficheros del servidor. Saludos.
__________________ Josemi Aprendiz de mucho, maestro de poco. |
| |||
Esto funciona Te dejo los pasos 1 a 1 1º Crea una Tabla con las siguiente caracteristicas ---------------------------------------------------------------- CREATE TABLE binary_data ( id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY, description CHAR(50), bin_data LONGBLOB, filename CHAR(50), filesize CHAR(50), filetype CHAR(50) ); 2º Archivo que guarda la imagen en la base de datos -------------------------------------------------------------------- guardar.php <?php require('Connections/Conexion.php'); ?> <html> <head><title>Store binary data into SQL Database</title></head> <body> <?php if ($submit) { mysql_select_db($database_Conexion, $Conexion); $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data))); $result=mysql_query("INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) ". "VALUES ('$form_description','$data','$form_data_name','$f orm_data_size','$form_data_type')"); $id= mysql_insert_id(); print "<p>This file has the following Database ID: <b>$id</b>"; mysql_close(); } else { ?> <form method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data"> File Description:<br> <input type="text" name="form_description" size="40"> <input type="hidden" name="MAX_FILE_SIZE" value="1000000"> <br>File to upload/store in database:<br> <input type="file" name="form_data" size="40"> <p><input type="submit" name="submit" value="submit"> </form> <?php } ?> </body> </html> ----------------------- Cuida con la linea <?php require('Connections/Conexion.php'); ?> Yo lo he trabajado con Dreamwever y este crea una carpeta "Connections" y dentro el archivo "Conexion.php" que tiene esto... <?php $hostname_Conexion = "Servidor"; #nombre de tu máquina $database_Conexion = "test"; #Base de datos $username_Conexion = "Usuario"; #Usuario con acceso $password_Conexion = ""; $Conexion = mysql_pconnect($hostname_Conexion, $username_Conexion, $password_Conexion) or die(mysql_error()); ?> 3. archivo que lee la foto --------------------------------- leer.php <?php require('Connections/Conexion.php'); ?> <?php //if($id) { mysql_select_db($database_Conexion, $Conexion); $query = "SELECT * FROM binary_data WHERE id=1"; $result = mysql_query($query,$Conexion) or die ("no hay conexion"); $data = mysql_result($result,0,"bin_data"); $type = mysql_result($result,0,"filetype"); header("Content-type: $type"); echo $data; mysql_close(); //}; ?> 4. El archivo que llama a leer.php y muestro la imagen --------------------------------------------------------------------- <body> <img src="leer.php?id=1"> </body> haz un documento Html y donde quieras coloca la etiqueta... <img src="leer.php?id=1"> esto llama a leer.php pidiendo la foto número 1 desde aquí ya podrás personalizar de forma dinámica la llamada a cualquier registro. Espero que te funcione... |
| |||
El cargar archivos en una tabla, hay que tener en cuenta que la cargamos de datos muy rapidamente, y normalmente las BDD estan limitadas, no en si misma por MYSQL si no por el servidor, por eso (aunque se discute mucho el tema ) es mejor solo cargar el link de la imagen y dejar que el sistema de archivos la guarde Y la velocidad de sacar la imagen (tambien se discute ) es igual en base de datos que en archivo normal Saludos |