带有角度的blimp,手动触发上传

时间:2013-08-27 10:53:44

标签: angularjs file-upload angularjs-directive

我正在使用this tutorial。 问题是该指令返回上传对象,这基本上会在选择文件时自动触发上传。

我认为,对AngularJS有更深入理解的人可以想到一种方法来手动触发bluimp的上传事件,可能是通过按键,或者在回调中。

2 个答案:

答案 0 :(得分:1)

你可以看看@下面的url,他们通过开始按钮提供文件上传:

http://blueimp.github.io/jQuery-File-Upload/angularjs.html

答案 1 :(得分:1)

不确定问题出在哪里,但这可能会让您省去以角度计算文件上传的麻烦:

您可以使用简单/轻量级angular-file-upload指令。 它支持带有FileAPI闪存垫片的非HTML5浏览器。它还支持拖放和上传进度。

<div ng-controller="MyCtrl">
  <input type="file" ng-file-select="onFileSelect($files)" multiple>
</div>

JS:

//inject angular file upload directive.
angular.module('myApp', ['angularFileUpload']);

var MyCtrl = [ '$scope', '$upload', function($scope, $upload) {
  $scope.onFileSelect = function($files) {
    //$files: an array of files selected, each file has name, size, and type.
    for (var i = 0; i < $files.length; i++) {
      var $file = $files[i];
      $upload.upload({
        url: 'my/upload/url',
        file: $file,
        data: {item: $scope.myModel},
        headers: {...}
        progress: function(e){}
      }).then(function(data, status, headers, config) {
        // file is uploaded successfully
        console.log(data);
      }); 
    }
  }
}];