使用此按钮上传文本文件,文件类型上的检查对我不起作用,该文件被认为有效。
<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.files
的type
属性即可查看文件类型。如果您想检查以image/
开头的文件,则可以使用以下方式:
if ($scope.files.startsWith("image/")) {
console.log("You dragged an image file");
// or whatever your logic is
}
您可以使用此信息从控制器适当地处理文件类型。请注意,并非所有文件都显示为具有类型,这也是要牢记的。
我知道这个问题是旧的,但是我仍然自己使用此工具,并且试图弄清楚为什么如果我指定了没有错误的ngf-accept
,我为什么不能忽略accept
。事实证明ngf-accept
需要tick,而accept
则不需要。
仅在ngf属性中使用'ticks,例如ngf-accept="'image/*'"
或ngf-pattern
,例如ngf-pattern="'image/*'"
或ngf-pattern="'.jpg,.png'"
。
在accept
中,您应该使用accept="image/*"
。