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将数据库中的TEXT类型数据动态赋值到TEXTAREA中
Apr 20 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
Jun 06 Javascript
使用JS 清空File控件的路径值
Jul 08 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
Nov 21 Javascript
一个简单的动态加载js和css的jquery代码
Sep 01 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
Oct 17 Javascript
Webpack 实现 Node.js 代码热替换
Oct 22 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
Mar 09 Javascript
jQuery点击其他地方时菜单消失的实现方法
Apr 22 Javascript
JS阻止事件冒泡行为和闭包的方法
Jun 16 Javascript
JavaScript设计模式之单体模式全面解析
Sep 09 Javascript
vue的Virtual Dom实现snabbdom解密
May 03 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
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
php检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
列举PHP的Yii 2框架的开发优势
2015/07/03 PHP
jquery.validate使用攻略 第一部
2010/07/01 Javascript
DD_belatedPNG,IE6下PNG透明解决方案(国外)
2010/12/06 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
JavaScript常用标签和方法总结
2015/09/01 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
详解Node中导入模块require和import的区别
2017/08/11 Javascript
Vue 动态设置路由参数的案例分析
2018/04/24 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
Python MD5文件生成码
2009/01/12 Python
python读取Excel实例详解
2018/08/17 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
python的pytest框架之命令行参数详解(上)
2019/06/27 Python
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
python如何调用java类
2020/07/05 Python
必须要使用游标的SQL语句有那些
2012/05/07 面试题
出国导师推荐信
2014/01/16 职场文书
端午节活动策划方案
2014/03/09 职场文书
农村婚礼主持词
2014/03/13 职场文书
装修协议书范本
2014/04/21 职场文书
优秀党员申报材料
2014/12/18 职场文书
博士论文答辩开场白
2015/06/01 职场文书
2016继续教育研修日志
2015/11/13 职场文书
2016秋季运动会前导词
2015/11/25 职场文书
MySQL系列之十二 备份与恢复
2021/07/02 MySQL