当 ngf-accept="'image/*'" 时,ng-file-upload 正在接受任何文件类型

ng-file-upload is accepting any file type when ngf-accept="'image/*'"

一直在使用此按钮上传文本文件,文件类型检查对我不起作用,文件被认为是有效的。

    <button ng-hide="uploading" class="btn centered" type="file"
ngf-select="uploadFiles($file, $invalidFiles)" accept="'image/*'"
ngf-max-size="4MB" ngf-accept="'image/*'">
  {{(boardingData.profile_pic_url) ? "Change Photo" : "Upload a Photo"}}
</button>

我们在应用程序中大量使用 ng-file-upload,但不使用 ngf-accept 指令。但是,您不需要使用它来过滤传入的文件类型。假设您有以下 <div> 用于拖动:

<div ngf-drop="" ng-model="files" class="some_class_here" ngf-allow-dir="false">

那么在你的控制器中会有一个作用域变量叫做 $scope.files。您可以简单地检查 $scope.filestype 属性以查看文件类型。如果你想检查以 image/ 开头的文件,那么你可以使用这个:

if ($scope.files.startsWith("image/")) {
    console.log("You dragged an image file");
    // or whatever your logic is
}

您可以使用此信息从您的控制器适当地处理文件类型。请注意,并非所有文件都显示为具有类型,这一点也要牢记。

我知道这个问题已经过时了,但我自己仍然在使用这个工具,并且试图找出如果我没有错误地指定 ngf-accept,为什么我不能遗漏 accept。结果 ngf-accept 需要刻度而 accept 不需要。

仅在 ngf 属性中使用 ' ticks,例如ngf-accept="'image/*'"ngf-pattern,例如ngf-pattern="'image/*'"ngf-pattern="'.jpg,.png'".

accept中,你应该使用accept="image/*"