如何在angularJS中检测上传的文件类型

时间:2014-06-11 08:41:33

标签: angularjs file-type

我有一个表格,只使用angularJS上传图像文件。上传文件一切正常。问题是,我想将上传的文件限制为仅图像文件,并将图像的大小限制为一些MB。如何仅使用angularJS实现此目的?以下是代码

$scope.uploadFile = function(files) {
    var fd = new FormData();
    //Take the first selected file
    fd.append("file", files[0]);

    $http.post("logoTypesServiceStore", fd, {
        withCredentials: true,
        headers: {'Content-Type': undefined },
        transformRequest: angular.identity
    }).success( function(data) {alert(data); }).error( function(data) { alert(data)});

};  

以下是上传文件的表格。

 <form name="logoTypeForm" novalidate>
     <input type="text" name="logoType" ng-model="logoType" class="form-control" required />
     <input type="file" name="file" onchange="angular.element(this).scope().uploadFile(this.files)"/>

 </form>

2 个答案:

答案 0 :(得分:10)

现代浏览器具有文件API support

$scope.uploadFile = function(files) {
    files[0].type; //MIME type
    files[0].size; //File size in bytes
}; 

Here是图像MIME类型列表

答案 1 :(得分:2)

我建议您在input标记中指定要接受的文件,如下所示:

<input type="file" name="files" accept="image/*">

有关更多信息,请查看输入标记的W3Schools参考。