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 相关文章推荐
一些常用的JS功能函数(2009-06-04更新)
Jun 04 Javascript
JS获取浏览器语言动态加载JS文件示例代码
Oct 31 Javascript
JS实现的不规则TAB选项卡效果代码
Sep 18 Javascript
微信小程序 label 组件详解及简单实例
Jan 10 Javascript
CodeMirror js代码加亮使用总结
Mar 25 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
Nov 15 Javascript
微信小程序将字符串生成二维码图片的操作方法
Jul 17 Javascript
简单了解TypeScript中如何继承 Error 类
Jun 21 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
Jul 05 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
Jul 29 Javascript
Layui tree 下拉菜单树的实例代码
Sep 21 Javascript
Javascript文本框脚本实现方法解析
Oct 30 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
制作美丽的拉花
2021/03/03 冲泡冲煮
开发大型 PHP 项目的方法
2007/01/02 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
封装获取dom元素的简单实例
2016/07/08 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
2019/12/10 Javascript
Python多线程实例教程
2014/09/06 Python
Python标准库shutil用法实例详解
2018/08/13 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
python贪吃蛇游戏代码
2020/04/18 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
Python数据库封装实现代码示例解析
2020/09/05 Python
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
机电专业大学生求职信
2013/10/04 职场文书
教师求职信范文分享
2013/12/27 职场文书
年度考核评语
2014/01/19 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
学校党委干部个人对照检查材料思想汇报
2014/10/09 职场文书
黄河绝恋观后感
2015/06/08 职场文书
门球健将观后感
2015/06/16 职场文书
利用python调用摄像头的实例分析
2021/06/07 Python