ng文件上传:将格式从"自定义文件"更改为"所有文件",它接受阻止的文件类型进行



我有以下代码,它只接受图像和pdf文件,但如果我从文件选择窗口(我认为它是由Chrome自己提供的(将"格式"更改为"自定义文件",则它接受包括zip文件夹在内的所有文件格式。

<button type="button" class="btn-submit upload for-hover smooth-hover"
data-prod-idx="{{index}}" data-prod-id="{{prod.ProductId}}"
ng-click="vm.onUpload($event, index, prod.ProductId)"
ngf-select="vm.uploadAttachments($event, $files, $invalidFiles)"
multiple accept="application/pdf, image/*" 
ngf-capture="'camera'"
ngf-max-size="5MB">Upload Documents
</button>

如何停止上传除图片和pdf以外的文件?(请不要JQuery,适用于所有浏览器(

我试过在accept中使用不同的值,但这对我没有帮助

使用每个file对象的file.type属性来确定它是否是不合适的类型。在uploadAttachments函数中,如果类型不合适,则跳过上载。

DEMO

angular.module("app",['ngFileUpload'])
.controller("ctrl", function () {
vm = this;
vm.uploadAttachments = (event, fileList) => {
console.log("fileList.length=", fileList.length);
var validList = fileList.filter( f => {
if (f.type.startsWith("application/pdf")) return true;
if (f.type.startsWith("image/")) return true;
console.log("skipping", f.name);
return false;
})
console.log("validList.length=",validList.length);
};
})
<script src="//unpkg.com/angular/angular.js"></script>
<script src="//unpkg.com/ng-file-upload/dist/ng-file-upload-all.js"></script>
<body ng-app="app" ng-controller="ctrl as vm">
<button type="button" class="btn-submit upload for-hover smooth-hover"
data-prod-idx="{{index}}" data-prod-id="{{prod.ProductId}}"
ng-click="vm.onUpload($event, index, prod.ProductId)"
ngf-select="vm.uploadAttachments($event, $files, $invalidFiles)"
multiple accept="application/pdf, image/*" 
ngf-capture="'camera'"
ngf-max-size="5MB">Upload Documents
</button>
</body>

相关内容

最新更新