#1• Necesito ayuda. He creado una base de datos de noticias con imágenes asociadas a éstas. Esto lo he hecho creando un campo texto en la tabla de las noticias con el nombre de la imagen (que se encontrará en un subdirectorio llamado /images). O sea, primero inserto la noticia desde un formulario; posteriormente "subo" la imagen desde otro formulario. |
#2• Para conseguir esto pos sencillo: Codigo: <?php //establece una conexión con la base de datos. $dbhost = "localhost"; $dbuname = "usuario"; $dbpass = "contraseña"; $dbname = "base de datos"; $conexion = mysql_connect($dbhost,$dbuname,$dbpass) or die("No se pudo realizar la conexion con el servidor."); mysql_select_db($dbname,$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca. ?> Una página para insertar las fotos insertar.php: Codigo: <?php //Primero, arranca el bloque PHP y checkea si el archivo tiene nombre. Si no fue asi, te remite de nuevo al formulario de inserción: // No se comprueba aqui si se ha subido correctamente. if (empty($_FILES['archivo']['name'])){ header("location: formulario.php?proceso=falta_indicar_fichero"); //o como se llame el formulario .. exit; } //establece una conexión con la base de datos. $conexion = mysql_connect("localhost","Usuario","contraseña") or die("No se pudo realizar la conexion con el servidor."); mysql_select_db("nuke",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca. // archivo temporal (ruta y nombre). $binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ; // leer del archvio temporal .. el binario subido. // "rb" para Windows .. Linux parece q con "r" sobra ... $binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "rb"), filesize($binario_nombre_temporal))); // Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo. $binario_nombre=$_FILES['archivo']['name']; $binario_peso=$_FILES['archivo']['size']; $binario_tipo=$_FILES['archivo']['type']; //insertamos los datos en la BD. $consulta_insertar = "INSERT INTO archivos (id, archivo_binario, archivo_nombre, archivo_peso, archivo_tipo) VALUES ('', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')"; mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos."); header("location: listar_imagenes.php"); // si ha ido todo bien exit; ?> Ahora otro para ver la imagen insertada listar_imagenes.php: Codigo: <?php include("config.php"); mysql_select_db("nuke") or die ("no se ha podido seleccionar la BD"); $sql = "SELECT id,archivo_nombre,archivo_tipo,archivo_peso FROM archivos"; $consulta = mysql_query($sql) or die ("No se pudo ejecutar la consulta"); While ($registro=mysql_fetch_assoc($consulta)){ echo "<img src=\"ver.php?id=".$registro['id']."\">"; echo "<br> Nombre archivo: ".$registro['archivo_nombre']; echo "<br> Tipo archivo (MIME formato): ".$registro['archivo_tipo']; echo "<br> Peso: ".$registro['archivo_peso']." bytes.<br><br>"; } ?> No olvides crear la tabla: Codigo: # # Estructura de la tabla `archivos` # CREATE TABLE `archivos` ( `id` int(10) unsigned NOT NULL auto_increment, `archivo_binario` blob NOT NULL, `archivo_nombre` varchar(255) NOT NULL default '', `archivo_peso` varchar(15) NOT NULL default '', `archivo_tipo` varchar(25) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=5 ; Espero que te aporte alguna idea dicho código pero.... Una cosa esto carga mucho la bd y no es recomendable |
#3•• Falta un código para ver las imágenes nombre del archivo ver.php: Codigo: <?php if(isset($_GET['id'])) { // you may have to modify login information for your database server: $conexion = mysql_connect("localhost","root","jardin") or die("No se pudo realizar la conexion con el servidor."); mysql_select_db("nuke",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca. mysql_select_db("nuke") or die ("no se ha podido seleccionar la BD"); $sql = "SELECT archivo_binario,archivo_tipo FROM archivos WHERE id='".$_GET['id']."'"; $consulta = mysql_query($sql,$conexion); $datos = mysql_result($consulta,0,"archivo_binario"); $tipo = mysql_result($consulta,0,"archivo_tipo"); header("Content-type: $tipo"); echo $datos; } ?> |
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un nuevo tema en lugar de responder al actual |
Opciones: Ir al subforo: |
Permisos: TU NO PUEDES Escribir nuevos temas TU NO PUEDES Responder a los temas TU NO PUEDES Editar tus propios mensajes TU NO PUEDES Borrar tus propios mensajes |
Temas similares | ||||
Tema | Usuarios | Respuestas | Visitas | Actividad |
---|---|---|---|---|
Por: javierperez, el 07/Jun/2003, 11:03 | 1 | 2k | Jun/03 | |
Por: drgII, el 09/Dic/2022, 17:07 | 7 | 2k | Aug/23 | |
Por: proyecto.jarvisti, el 04/Jul/2022, 01:31 | 1 | 2k | Jul/22 | |
Por: krelsein, el 18/Sep/2021, 16:55 | 0 | 2k | Sep/21 | |
Por: HackString, el 01/Abr/2019, 12:17 | 2 | 3k | May/20 |