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 相关文章推荐
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
Apr 15 Javascript
Javascript中的高阶函数介绍
Mar 15 Javascript
jQuery on()方法使用技巧详解
Apr 16 Javascript
基于JavaScript实现验证码功能
Apr 01 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
May 26 Javascript
详解Node.js access_token的获取、存储及更新
Jun 20 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
Sep 10 Javascript
koa上传excel文件并解析的实现方法
Aug 09 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
Sep 11 Javascript
vue实现类似淘宝商品评价页面星级评价及上传多张图片功能
Oct 29 Javascript
vue-test-utils初使用详解
May 23 Javascript
Vue实现图片与文字混输效果
Dec 04 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
PHP中使用register_shutdown_function函数截获fatal error示例
2015/04/21 PHP
基于PHP实现的事件机制实例分析
2015/06/18 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
Javascript 继承机制的实现
2009/08/12 Javascript
用jquery与css打造个性化的单选框和复选框
2010/10/20 Javascript
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
2012/05/23 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
js中string转int把String类型转化成int类型
2014/08/13 Javascript
js命名空间写法示例
2015/12/18 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
详解webpack介绍&amp;安装&amp;常用命令
2017/06/29 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
python进阶教程之文本文件的读取和写入
2014/08/29 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
详解使用 pyenv 管理多个版本 python 环境
2017/10/19 Python
ubuntu安装sublime3并配置python3环境的方法
2018/03/15 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
HTML5 video 事件应用示例
2014/09/11 HTML / CSS
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
荷兰度假屋租赁网站:Aan Zee
2020/02/28 全球购物
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
2019年c语言经典面试题目
2016/08/17 面试题
北京振戎融通Java面试题
2015/09/03 面试题
新闻学专业应届生求职信
2013/11/08 职场文书
餐饮业创业计划书范文
2014/01/06 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
任命书格式范文
2015/09/22 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书
python APScheduler执行定时任务介绍
2022/04/19 Python