Tengo un pequeño problema con insertar y mostrar una imagan que venga desde una base de datos con un campo "mediumblob".
Para insertar tengo el siguiente codigo
Código PHP:
<?php
//Conexion
include 'inc/conection.php';
if (isset($_POST['enviar'])) {
if (empty($_FILES['archivo']['name'])){
header("location: carga.php"); //o como se llame el formulario ..
exit;
}
//establece una conexión con la base de datos.
$conexion = mysql_connect("localhost","root","") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("prueba",$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 imagenes ( imagen, nombre, peso, 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.");
}
////Desconexion DB
?>
<form enctype="multipart/form-data" method="POST">
Imagen: <input type="file" name="archivo" /><br />
Breve Descripcion: <input type="text" name="descripcion" /> <i>(Opcional)</i><br /><br />
<input type="submit" name="enviar" value="Enviar" />
</form>
¿Como se que lo inserto de forma correcta?
-------------------------
Para mostrarar la imagen tengo dos archivos,
uno que es donde tengo solo html con el siguiente codigo
Código HTML:
Ver original
Y en la pagina verblob.php tengo lo siguiente
Código PHP:
include 'inc/conection.php';
if(isset($_GET['id'])) {
// you may have to modify login information for your database server:
$conexion=mysql_connect("localhost","root","") or die ("no se ha podido conectar a la BD");
mysql_select_db("prueba") or die ("no se ha podido seleccionar la BD");
$sql = "SELECT nombre archivo_nombre,imagen archivo_binario, tipo archivo_tipo,peso archivo_peso FROM imagenes WHERE id='".$_GET['id']."'";
$consulta = mysql_query($sql,$conexion);
$datos = mysql_result($consulta,0,"archivo_binario");
$tipo = mysql_result($consulta,0,"archivo_tipo");
$nombre = mysql_result($consulta,0,"archivo_nombre");
$peso = mysql_result($consulta,0,"archivo_peso");
header("Content-type: $tipo");
header("Content-length: $peso");
header("Content-Disposition: inline; filename=$nombre");
echo $datos;
}
En la pagina dodne tengo el tag img no me muestra nada
y en esta ultima donde imprimo echo $datos;
Me imprime un buen de caracteres especiales.
No se que es lo que estoy haciendo ma, ya lei en varios foros y nada de nada
Espero me puedan ayudar
Estoy en
mysql5
php 5
debian
Espero me puedan ayudar!!!
gracias de antemano