2017-08-31 25 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>

相關問題