我正在使用this tutorial。 问题是该指令返回上传对象,这基本上会在选择文件时自动触发上传。
我认为,对AngularJS有更深入理解的人可以想到一种方法来手动触发bluimp的上传事件,可能是通过按键,或者在回调中。
答案 0 :(得分:1)
你可以看看@下面的url,他们通过开始按钮提供文件上传:
答案 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);
});
}
}
}];