如何解决为什么IF语句中的OR无法正常工作?
我具有将文件上传到S3的功能,并且只希望上传PNG和(JPG,JPEG)图像。我添加了以下检查;
if(fileExtension.toUpperCase() != 'png'.toUpperCase() || fileExtension.toUpperCase() !=
'jpeg'.toUpperCase() || fileExtension.toUpperCase() != 'jpg'.toUpperCase()) {
return {
statusCode: 500,body: JSON.stringify("Not a valid capture format. Capture upload only accepts PNG and
(JPG,JPEG)"),};
}
else {
// Upload capture
}
发生的事情是,即使我期望它返回以下错误消息,也表示它不是有效的捕获格式。例如,filePrefix
是jpg
,因此我希望它包含在else
语句中。
编辑
如何只允许将带有PNG,JPG或JPEG扩展名的文件上载到S3?如果不是这些扩展名,我想返回一个错误,如上所示。
谢谢。
解决方法
看来您的逻辑有些偏离!
就目前而言,您正在检查文件扩展名是 not “ png”还是“ jpg”还是“ jpeg”。因为不可能永远都是3,所以每次测试都必须返回true。
您应该执行以下两项操作之一。
- 将
||
更改为&&
,以便:如果不是“ png”,不是“ jpg”,不是“ jpeg”,则返回错误
if(fileExtension.toUpperCase() != 'png'.toUpperCase() && fileExtension.toUpperCase() !=
'jpeg'.toUpperCase() && fileExtension.toUpperCase() != 'jpg'.toUpperCase()) {
// return error
} else {
// process upload
}
或
- 反转逻辑并将
!=
更改为==
if(fileExtension.toUpperCase() == 'png'.toUpperCase() || fileExtension.toUpperCase() == 'jpeg'.toUpperCase() || fileExtension.toUpperCase() == 'jpg'.toUpperCase()) {
// process upload
} else {
// return error
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。