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 相关文章推荐
JavaScript类和继承 constructor属性
Mar 04 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
Mar 21 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
May 08 Javascript
浅谈jquery的map()和each()方法
Jun 12 Javascript
JavaScript 函数模式详解及示例
Sep 07 Javascript
Bootstrap基本样式学习笔记之表格(2)
Dec 07 Javascript
Bootstrap栅格系统的使用和理解2
Dec 14 Javascript
vue-cli 首屏加载优化问题
Nov 06 Javascript
JavaScript解析JSON数据示例
Jul 16 Javascript
在vue中通过render函数给子组件设置ref操作
Nov 17 Vue.js
js+html+css实现手动轮播和自动轮播
Dec 30 Javascript
Vue鼠标滚轮滚动切换路由效果的实现方法
Aug 04 Vue.js
微信小程序 自定义消息提示框
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
ASP知识讲座四
2006/10/09 PHP
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
Snoopy类使用小例子
2008/04/15 PHP
PHP简洁函数小结
2011/08/12 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
php线性表的入栈与出栈实例分析
2015/06/12 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
PHP7 错误处理机制修改
2021/03/09 PHP
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
js当一个变量为函数时 应该注意的一点细节小结
2011/12/29 Javascript
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
轻松实现JavaScript图片切换
2016/01/12 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
js实现一键复制功能
2017/03/16 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
老生常谈JavaScript面向对象基础与this指向问题
2017/10/16 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
python验证码识别教程之利用投影法、连通域法分割图片
2018/06/04 Python
详解python selenium 爬取网易云音乐歌单名
2019/03/28 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
2020/06/30 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
2013/01/31 HTML / CSS
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
德国游戏机商店:Konsolenkost
2019/12/08 全球购物
养牛场项目建议书
2014/05/13 职场文书
冬季施工防火方案
2014/05/17 职场文书
网吧七夕活动策划方案
2014/08/31 职场文书
Oracle笔记
2021/04/05 Oracle