为什么在验证文件类型时出现错误?

时间:2020-05-14 14:11:58

标签: angular typescript angular9

我想捕获类型为image or video的文件。但是根据我的情况,即使对于正确的文件类型,我也无法理解为什么会引发错误。下面是我的代码:

app.component.ts

startUpload(event: FileList)
  {
    const file = event.item(0);
    if((file.type.split('/')[0] !== 'video') || (file.type.split('/')[0] !== 'image'))
    {
      alert(file.type.split('/')[0]);
      return;
    }
  }

上传视频/图像文件时,它会在警报框中分别显示视频/图像。 请建议我需要更改的地方。

2 个答案:

答案 0 :(得分:0)

您的逻辑是错误的。你不能有(x!== y)|| (x!== b),因为它将始终为真。

您可能是说'&&'而不是'||'在您的if语句中

答案 1 :(得分:0)

让我向您介绍De Morgan's law。用简单的话说

  • 不是(A或B)=不是A也不是B
  • 不是(A和B)=不是A还是不是B

根据您的情况,您需要测试文件类型既不是'video'也不是'image'。所以你可以做

const fileType = file.type.split('/')[0];
if((fileType !== 'video') && (fileType !== 'image')) {
  alert(fileType);
  return;
}

const fileType = file.type.split('/')[0];
if(!((fileType === 'video') || (fileType === 'image'))) {
  alert(fileType);
  return;
}