Mostrar una imagen de un array en php

Estoy haciendo un pequeño formulario en php para subir varias imágenes, a la base de datos y también a una carpeta que llamo "imagenes"
El tema es el siguiente, no se como hacer que se "muestren" al archivo lo hice en base a un ejemplo que vi en internet..

Este es archivo de conexión (conexión.php)

¿

¿
<?php
function conectarse(){
    $server="localhost";
    $username="root";
    $password="";
    $bd='imagenesbd';
    $conexion= new mysqli($server,$username,$password,$bd)or die("no se ha podido establecer la conexion");
    return $conexion;
    }
?>

este es el formulario (formulario.php)

<! Doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Multifile Upload by elporfirio.com</title>
</head>
<body>
<?php
    $max_upload = (int)(ini_get('upload_max_filesize'));
    $max_post = (int)(ini_get('post_max_size'));
    $memory_limit = (int)(ini_get('memory_limit'));
    $upload_mb = min($max_upload, $max_post, $memory_limit);
    echo "Tamaño maximo permitido <strong>$upload_mb Mb</strong><br>";
?>
<form action="procesarArchivos.php" method="post" enctype="multipart/form-data">
    <br> 
    <label>Archivo 1</label>
    <input type="file" name="archivo[]">
    <br>
    <label>Archivo 2</label>
    <input type="file" name="archivo[]">
    <br>
    <label>Archivo 3</label>
    <input type="file" name="archivo[]">
    <br>
    <label>Archivo 4</label>
    <input type="file" name="archivo[]">
    <br>
    <label>Archivo 5</label>
    <input type="file" name="archivo[]">
    <br>
    <input type="submit" value="Guardar Archivos">
</form>
</body>
</html>

este es archivo que lo procesa (procesarArchivos.php) -- no quiero q en este archivo se muestren las imagenes, solo que haga el proceso de subirlas a la base de datos y a la carpeta-- puse idUsuario e idProducto, porque la tabla Imagen (tendra los campos: idImg, IdUsuario,IdProducto,nombImg,tipoImg), en donde idProducto= se relacionará con la tabla productos

E idUsuario = se relacionará con la tabla usuario( es decir que usuario subio esa imagen de producto).. Por ahora los deje con valores estaticos, ("1" y "2") para no complicarme con eso todavia

Ahora hice este archivo que me va tomar las imagenes de la base de datos: (obtenerFotografia.php)

¿

<?php
function mostrarImgs($val,$conexion){
    $consulta= "SELECT * FROM imagen WHERE idProducto = '$val'";
    $resultado = $conexion->query($consulta);
    while ($f= $resultado->fetch_assoc()){
                //ahora solamente debemos mostrar la imagen
        echo  $f['nombImg'];   
    }
}
?>

Y por ultimo hice otro archivo para que utilice esa funcion y muestre la imagen final (mostrarImagen.php), le puse el valor "2" porque por ahora quiero que me muestre las imagenes de "X" producto..

<?php 
  include 'conexion.php';
  $conexion = conectarse();
  include 'obtenerFotografia.php';
?>
<! DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<?php
    mostrarImgs(2,$conexion);
?>
</body>
</html>

Bueno el tema es que si bien se inserta en la tabla; imagen (idImg, idUsuario, idProducto, nombImg, tipoImagen) no se como hacer para que muestre las imágenes.. Porque podría mostrarlas desde la carpeta "imagenes" que tengo creada, pero quisiera saber como hacer de la otra forma
muchas gracias a todos lo que lo lean, y dejaran sus comentarios :))))

1 respuesta

Respuesta

Debería ser algo así

echo "<img src='ruta/imagen.extension'/>"

¡Gracias! ... El tema es que me olvide de aclarar que el campo de NOMBIMG es de tipo MEDIUMBLOB osea que lo que guardo no es la ruta, sino el archivo de la imagen en si misma..
Muchas muchas gracias por responder y tomart el tiempo de leer lo que subí! Voy a probar a ver que pasa:)))

Disculpa la demora e la respuesta, en este caso deberías tener un campo donde indiques el tipo de archivo, recuerda que las imágenes son procesadas de acuerdo con su formato (extensión).

Antes de mostrar la imagen debes indicar una cabecera más o menos así:

Header("Content-type:". Tipo_de_imagen);

Sí y solo si, es seguro que conoces el formato de la imagen y esta no cambia entonces colocas una cabecera fija, es decir:

header("Content-type: image/jpeg");
O puede ser
Header("Content-type: image/png");

Luego de esta línea si cargas tu imagen

mostrarImgs(2,$conexion);

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas