Que tal? Tengo un problema al querer hacer funcionar este script. Soy novato en esto y el tema es que no me aparecen las imagenes cuando me abre el archivo "listar_imagenes.php". Aparece el icono de error en la carga de la imagen. Los datos de texto aparecen todos bien.
Les adjunto el codigo para que sepan mas o menos de qué les estoy hablando.
Codigo PHP insertar.php Código PHP:
<?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['imagen']['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","user","password") or die ("no se ha podido conectar a la BD");
mysql_select_db("catalogo",$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['imagen']['tmp_name'] ;
$Fcodigo=$_REQUEST['codigo'];
$Fmarca=$_REQUEST['marca'];
$Fmodelo=$_REQUEST['modelo'];
$Fmoneda=$_REQUEST['moneda'];
$Fvalor=$_REQUEST['valor'];
// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...
$binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "r"), filesize($binario_nombre_temporal)));
// Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo.
$binario_nombre=$_FILES['imagen']['name'];
$binario_peso=$_FILES['imagen']['size'];
$binario_tipo=$_FILES['imagen']['type'];
//insertamos los datos en la BD.
$consulta_insertar = "INSERT INTO producto (id, img_binario, img_nombre, img_peso, img_tipo, codigo, marca, modelo, moneda, precio) VALUES ('', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo', '$Fcodigo', '$Fmarca', '$Fmodelo', '$Fmoneda', '$Fprecio')";
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;
?>
listar_imagenes.php Código PHP:
<?php
mysql_connect("localhost","user","password") or die ("no se ha podido conectar a la BD");
mysql_select_db("catalogo") or die ("no se ha podido seleccionar la BD");
$sql = "SELECT img_binario,img_nombre,img_peso,img_tipo,codigo,marca,modelo,moneda,precio FROM producto";
$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['img_nombre'];
echo "<br> Tipo archivo (MIME formato): ".$registro['img_tipo'];
echo "<br> Peso: ".$registro['img_peso']." bytes.<br>";
echo "<br> Codigo: ".$registro['codigo']."<br>";
echo "<br> Marca: ".$registro['marca']."<br>";
echo "<br> Modelo: ".$registro['modelo']."<br>";
echo "<br> Moneda: ".$registro['moneda']."<br>";
echo "<br> Precio: ".$registro['precio']."<br>";
}
?>
ver.php Código PHP:
<?php
if(isset($_GET['id'])) {
// you may have to modify login information for your database server:
$conexion=mysql_connect("localhost","user","password") or die ("no se ha podido conectar a la BD");
mysql_select_db("catalogo") or die ("no se ha podido seleccionar la BD");
$sql = "SELECT img_binario,img_nombre,img_peso,img_tipo,codigo,marca,modelo,moneda,precio FROM producto WHERE id='".$_GET['id']."'";
$consulta = mysql_query($sql,$conexion);
$datos = mysql_result($consulta,0,"img_binario");
$tipo = mysql_result($consulta,0,"img_tipo");
$nombre = mysql_result($consulta,0,"img_nombre");
$peso = mysql_result($consulta,0,"img_peso");
header("Content-type: $tipo");
header("Content-length: $peso");
header("Content-Disposition: inline; filename=$nombre");
echo $datos;
}
?>
Agradezco mucho su ayuda, saludos!!
Gabriel