【 一 】使用 bower 下载 ng-file-upload 插件
(bower 是什么以及如何安装与使用在我的博客中有一篇文章介绍,可移步查看)
【 二 】app 中引入 'ngFileUpload'
(function(){【 三 】HTML 文件中
angular.module('starter', [
'ionic','ngFileUpload'
]);
})();
<ion-item class="ionItem1" ngf-select ng-model="data.file" name="file" ngf-pattern="'image/*'" ngf-multiple="false">
<label class="item_title">头像</label>
<img src="" class="headerImage" ngf-src="data.file || data.defaultImage">
<span class="ion-chevron-right"></span>
</ion-item>
【四】控制器中(控制器需注入 UpLoad )
$scope.data = {
file: null,
defaultImage: '../img/图片.jpg'
};
$scope.$watch('data.file', function(newValue, oldValue, scope) {
console.log('newValue==' + newValue);
console.log('oldValue==' + oldValue);
if($scope.data.file){
$scope.upload($scope.data.file);
}
});
// 上传图片
$scope.upload = function(file) {
Upload.upload({
//服务端接收
url: 'upload/url',
//上传的同时带的文件和参数
data: { file: file, 'username': $scope.username }
}).then(function(resp) {
console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data);
}, function(resp) {
console.log('Error status: ' + resp.status);
}, function(evt) {
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.name);
});
};