Ich versuche zu überprüfen, ob eine Verknüpfung ein gültiges Bild mit einer magischen Zahl ist. Die meisten Bilder funktionieren gut. Aber hier sind eine Reihe von Bildern auf Trumps Website, die keine korrekten magischen Zahlen erzeugen, obwohl sie im Browser gut zu funktionieren scheinen. Die von ihnen produzierte magische Zahl ist 3c21444f.Ungültige magische Nummer einer PNG-Datei
var request = require('request');
var magic = {
jpg: 'ffd8ffe0',
jpg1: 'ffd8ffe1',
png: '89504e47',
gif: '47494638'
};
var options = {
method: 'GET',
url: 'https://assets.donaldjtrump.com/gallery/4749/screen_shot_2016-10-30_at_1.39.54_pm.png',
encoding: null // keeps the body as buffer
};
request(options, function (error, response, body) {
if(!error) {
var magicNumberInBody = body.toString('hex', 0, 4);
if (magicNumberInBody == magic.jpg ||
magicNumberInBody == magic.jpg1 ||
magicNumberInBody == magic.png ||
magicNumberInBody == magic.gif) {
console.log('Valid image');
} else {
console.log('Invalid Image', magicNumberInBody);
}
}
});
Das ist ' polarysekt
hmm scheint, dass cloudflare HTML-Seite anstelle von Bild zurückgibt, wenn ich Anfrage an diesen Server von node.js-Skript stelle. Möglicherweise muss ich richtige Header hinzufügen, um das Bild korrekt im Skript zu erhalten. Vielen Dank – Yalamber