Angularjs上传图片实例详解


Posted in Javascript onAugust 06, 2017

•上传图片需要引入插件ngFileUpload,使用bower安装方法: bower install ng-file-upload --save,安装后需要在命名app的名字js文件中注入,如下所示:

(function() {
  angular.module('app', [
    'ionic','ngStorage','ngFileUpload'
  ]);
})();

•在相应的html中引入文件路径:<script src="lib/ng-file-upload/ng-file-upload.min.js"></script>

•如何使用呢?在html文件中使用 ngf-select

<div class="editHeader_div" ngf-select="setStore.uploadFiles($file, $invalidFiles)">
        <img class="editStoreImg" ng-src="img/{{setStore.img}}">
        <p>更改头像</p>
 </div>

在相应的controller中:

//上传单个文件
    function uploadFiles(file, errFiles) {
      vm.imgInfo = file;
      console.log(file);
      if (file) {
        vm.img = file.name;//测试使用
        //Service.upload('','',{file:file})//开发使用
      }
    }

在http请求如下:

//文件上传预设配置
      Upload.setDefaults({
        ngfAccept: "'.jpg,.png,.gif,.jpeg'",
        ngfDropDisabled: 'true',
        ngfPattern: '.jpg,.png,.gif,.jpeg',
        ngfMaxSize: '2MB'
      });
 //上传文件
      function upload(ctrl, name, param) {
        var deferred = $q.defer(),
          interfaceName = ctrl + '/' + name,
          backendDetail = getBackendDetail(interfaceName);
        //上传文件到服务器
        Upload.upload({
          url: backend.url + ':' + backendDetail.port + '/' + backendDetail.service + '/' + interfaceName,
          data: param || {}
        }).then(function(data) {
          //service返回数据
          var result = data.data;
          //200代表接口调用成功
          if (data.status === 200) {
            //数据库返回错误信息
            if (result && serviceErrors[result.returnCode]) {
              deferred.reject('Error Services');
              swal(result.message, '错误状态码:' + result.returnCode, 'error');
            } else if (!result.dataInfo) {
              deferred.reject('Error Image');
              swal('图片上传失败', '请检查图片属性', 'error');
            } else {
              deferred.resolve(result);
            }
          } else {
            deferred.reject('Error Services');
            swal('提交操作失败', '错误状态码:' + data.status, 'error');
          }
        }, function(error) {
          deferred.reject('Error Services');
          swal('提交操作失败', '错误状态码:' + error.status, 'error');
        });
        return deferred.promise;
      }

总结

以上所述是小编给大家介绍的Angularjs上传图片实例详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
使用TextRange获取输入框中光标的位
Oct 14 Javascript
用 JavaScript 迁移目录
Dec 18 Javascript
JavaScript初学者需要了解10个小技巧
Aug 25 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
Oct 18 Javascript
JS实现根据当前文字选择返回被选中的文字
May 21 Javascript
详解JavaScript中数组的相关知识
Jul 29 Javascript
详解JavaScript中的构造器Constructor模式
Jan 14 Javascript
javascript 取小数点后几位几种方法总结
Aug 02 Javascript
最实用的JS数组函数整理
Dec 05 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
Feb 28 Javascript
vue下拉列表功能实例代码
Apr 08 Javascript
小程序中this.setData的使用和注意事项
Aug 28 Javascript
微信小程序 自定义消息提示框
Aug 06 #Javascript
最通俗易懂的javascript变量提升详解
Aug 05 #Javascript
Vue2.0 vue-source jsonp 跨域请求
Aug 04 #Javascript
js分页之前端代码实现和请求处理
Aug 04 #Javascript
微信小程序 rich-text的使用方法
Aug 04 #Javascript
Easyui和zTree两种方式分别实现树形下拉框
Aug 04 #Javascript
JS中使用media实现响应式布局
Aug 04 #Javascript
You might like
虫族 Zerg 历史背景
2020/03/14 星际争霸
PHP 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
PHP写的资源下载防盗链类分享
2014/05/12 PHP
PHP生成plist数据的方法
2015/06/16 PHP
php如何连接sql server
2015/10/16 PHP
Yii视图CGridView列表用法实例分析
2016/07/12 PHP
php实现微信发红包功能
2018/07/13 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
jQuery验证Checkbox是否选中的代码 推荐
2011/09/04 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
JQuery入门基础小实例(1)
2015/09/17 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
jQuery AJAX与jQuery事件的分析讲解
2019/02/18 jQuery
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
ES6 class的应用实例分析
2019/06/27 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
2020/02/10 Javascript
JavaScript array常用方法代码实例详解
2020/09/02 Javascript
[01:08:43]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第一场 1月9日
2021/03/11 DOTA
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
Python网络编程之使用TCP方式传输文件操作示例
2019/11/01 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
2020/06/11 Python
win10安装python3.6的常见问题
2020/07/01 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
销售辞职报告范文
2014/01/12 职场文书
副总经理岗位职责
2014/03/16 职场文书
2014两会学习心得:时代的发展
2014/03/17 职场文书
高考寄语大全
2014/04/08 职场文书
电教室标语
2014/06/20 职场文书
安全月宣传标语
2014/10/07 职场文书
感谢信模板大全
2015/01/23 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书