En este momento estás viendo Vista previa de Imágenes con Javascript Vanilla

Vista previa de Imágenes con Javascript Vanilla

Compartir en

A la hora subir imágenes al servidor necesitamos ver una vista previa de la imagen que se selecciona.

Ejemplo:

Pasa 01:

Para dar estilos vamos utilizar Bootstrap.

Paso 02:

Luego creamos la estructura de Html5.

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
 
<body>

</body>
 
</html>

Paso 03:

Enlazamos el cnd de Bootstrap dentro de la etiqueta head, para este ejemplo simplemente necesitamos los estilos.

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Subir Img</title>
    
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
    
</head>
 

Paso 04:

Dentro del body vamos crear nuestro contenido agregando los estilos de bootstrap.

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Subir Img</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
 
<body>

    <div class="container">
        <div class="row">
            <div class="col-lg-5 m-auto">
                <div class="card">
                    <div class="card-body">
                        <form action="" method="post" enctype="multipart/form-data" id="img" class="text-center">
                            <h5 class="card-title">Selecciona una imagen</h5>
                            <label for="imagen" id="subir"><i class="fas fa-image fa-lg"></i></label>
                            <input type="file" class="d-none" id="imagen" name="imagen">
                            <div class="d-none" id="vista_previa">
                                <img width="100%" id="previa" class="img-thumbnail">
                                <button id="publicar" type="button" class="btn btn-dark">Publicar</button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
 
</html>

También he agregado iconos de Font Awesome.

Paso 05:

Luego crearemos nuestro propio script antes de cierre del body.

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Subir Img</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
 
<body>
    <div class="container">
        <div class="row">
            <div class="col-lg-5 m-auto">
                <div class="card">
                    <div class="card-body">
                        <form action="" method="post" enctype="multipart/form-data" id="img" class="text-center">
                            <h5 class="card-title">Selecciona una imagen</h5>
                            <label for="imagen" id="subir"><i class="fas fa-image fa-lg"></i></label>
                            <input type="file" class="d-none" id="imagen" name="imagen">
                            <div class="d-none" id="vista_previa">
                                <img width="100%" id="previa" class="img-thumbnail">
                                <button id="publicar" type="button" class="btn btn-dark">Publicar</button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- Script para crear la vista previa -->
    <script>
    
        // Seleccionamos el id de nuestro input file
        const imagen = document.getElementById("imagen");
        
        // Ponemos a la escucha del evento change
        imagen.addEventListener("change", (e) => {
            const name = e.target.files[0];
            
            //Creamos una url temporal de nuestro imagen a traves del file
            let img = URL.createObjectURL(name);
            
            //Le agregamos la url temporal en el atributo src de la etiqueta img
            document.getElementById("previa").src = img;
            
            //Le quitamos la clase d-none de bootstrap para hacer visible
            document.getElementById("vista_previa").classList.remove("d-none");
        });
    
    </script>
    
    <!-- Hace referencia a los icono de font Awesome puedes utilizar el cdn o descargar-->
    <script src="js/all.min.js"></script>
</body>
 
</html>
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments