2017-08-31 26 views
0

我有下面的代码,只接受图像和PDF文件,但如果我改变格式从文件选择窗口由Chrome本身提供)自定义文件到所有文件,它接受所有文件格式,包括zip文件夹。ng-file-upload:改变格式从自定义文件到所有文件,它接受被阻止的文件类型上传

<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,请对所有的浏览器)

我已经接受使用不同的值试过了,但是这不是我的帮助。

+0

如果你想绝对保证用户不会上传超过图像或PDF其他的东西,你会想抛出一个错误的服务器端。对于前端,请参阅以下SO问题:[https://stackoverflow.com/questions/34654073/how-stop-file-upload-event-using-javascript](https://stackoverflow.com/questions/ 34654073 /如何停止文件上传事件使用JavaScript) –

+0

可能重复[如何停止文件上传事件使用JavaScript](https://stackoverflow.com/questions/34654073/how-stop-file-upload- event-using-javascript) –

+0

使用每个[File对象]的[file.type](https://developer.mozilla.org/en-US/docs/Web/API/File/type)属性(https:/ /developer.mozilla.org/en-US/docs/Web/API/File)来确定它是否是不恰当的类型。在'uploadAttachments'功能中,如果类型不合适,请跳过上传。 – georgeawg

回答

1

使用每个File objectfile.type属性来确定它是否是不恰当的类型。在uploadAttachments函数中,如果类型不合适,请跳过上传。

The 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>

相关问题