gpt4 book ai didi

javascript - 根据扩展名确定文件是图片还是视频不起作用

转载 作者:行者123 更新时间:2023-12-02 23:08:03 24 4
gpt4 key购买 nike

我正在尝试确定上传的文件是视频还是照片。我需要这个,以便根据文件扩展名,我可以将视频或照片发送到我的电报机器人。

让我失望的是,我的逻辑似乎是正确的:

form.parse(req, (err, fields, files) => {
if (err) {
res.render('error')
} else {
console.log('File uploaded : ' + files.upload.path + '/' + files.upload.name);
console.log('Fields : ' + fields);
console.log(path.extname(files.upload.name))
if(path.extname(files.upload.name).toLowerCase() === ".jpeg" || ".jpg" || ".png" || ".tiff" || ".gif") {
console.log("image")
}
else if(path.extname(files.upload.name).toLowerCase() === ".mp4" || ".m4a"|| ".f4v" || ".m4b" || ".mov") {
console.log("video")
}
else {
render('error')
}
res.render('success')
}
});

上传 .mp4 视频文件时,它会打印它是 .mp4,但随后打印图像。我不确定为什么会发生这种情况。非常感谢任何帮助。

最佳答案

您尝试使用的或比较并不像您想象的那样工作。只有第一个比较是使用 path.extname(files.upload.name).toLowerCase() 的值,其他比较是评估字符串的真实性并正确返回。因此,始终会输入第一个 if

例如

> x = 5
5
> if ( x == 4 || ".jpg" ) {console.log("Yep")};
Yep
> if ( x == 5 && "" ) {console.log("Yep")};
undefined
> if ( x == 5 && "yep" ) {console.log("Yep")};
Yep

关于javascript - 根据扩展名确定文件是图片还是视频不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57497664/

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