gpt4 book ai didi

javascript - 请求- promise : downloading/checking a file's MIME type?

转载 作者:行者123 更新时间:2023-12-02 14:16:31 25 4
gpt4 key购买 nike

使用标准请求模块,我们可以运行以下脚本来检查文件的 MIME 类型;

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){
var magicNumberInBody = body.toString('hex',0,4);
if (magicNumberInBody == magic.jpg ||
magicNumberInBody == magic.png ||
magicNumberInBody == magic.gif) {
console.log("It's an image!");
return true;
}
}
});

这是不言自明的。然而,当使用node.js并依赖Promises时,我们如何执行上述操作呢?我尝试安装并使用request-promise ,并编写了以下脚本;

return rp("http://www.somedomain.com/somepicture.jpg")
.then((response) => {
var magicNumberInBody = response.toString('hex',0,4);
console.log(magicNumberInBody);
if (magicNumberInBody == magic.jpg ||
magicNumberInBody == magic.png ||
magicNumberInBody == magic.gif) {
console.log("It's an image!");
return true;
}

但是,对于任何不基于 html/txt 的内容,请求 promise 似乎只返回原始二进制文件。

有谁知道如何将上述数据更改为有意义的内容,以便我可以轻松地使用它来识别 MIME 类型是否为 jpg/png/gif?

最佳答案

您必须使用resolveWithFullResponse选项:

rp({
uri: "http://www.somedomain.com/somepicture.jpg",
resolveWithFullResponse: true
}).then(res => {
console.log(res.headers['content-type'])
})

关于javascript - 请求- promise : downloading/checking a file's MIME type?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38985341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com