Saltar al contenido

En Node.js, dada una URL, ¿cómo verifico si es un jpg/png/gif?

Revisamos exhaustivamente cada reseñas de nuestra página web con la meta de enseñarte en todo momento información veraz y actualizada.

Solución:

Simplemente lea los primeros bytes de la transmisión y verifique si hay el llamado “número mágico”.

Los números mágicos son los primeros bits de un archivo que identifican de forma única el tipo de archivo.

Por ejemplo:
-Cada archivo JPEG comienza con ff d8 (maleficio).
-Cada archivo png comienza con un 89 50 4e 47.
-Hay una tabla completa de números mágicos aquí.

De esta manera, incluso si tiene un archivo sin extensión, aún puede detectar su tipo.
Espero que esto ayude.

Este código muestra una solución funcional para el enfoque de números mágicos (resumen de las respuestas existentes e información en https://github.com/request/request).

var request = require('request');
var url = "http://www.somedomain.com/somepicture.jpg";
var magic = 
    jpg: 'ffd8ffe0',
    png: '89504e47',
    gif: '47494638'
;
var options = 
    method: 'GET',
    url: url,
    encoding: null // keeps the body as buffer
;

request(options, function (err, response, body) 
    if(!err && response.statusCode == 200)
            magigNumberInBody == magic.gif) 

            // do something

        
    
);

Hay dos módulos que pueden ayudarlo a lograr esto:

https://github.com/SaltwaterC/mime-magia

https://github.com/bentomas/node-mimo

Te mostramos las reseñas y valoraciones de los lectores

Si te sientes estimulado, tienes la libertad de dejar un enunciado acerca de qué le añadirías a este artículo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *