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 解决表单仍然提交即使监听处理函数返回false
Mar 14 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
Jul 31 Javascript
jquery移动listbox的值原理及代码
May 03 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
Jan 28 Javascript
javascript中createElement的两种创建方式
May 14 Javascript
基于javascript实现仿百度输入框自动匹配功能
Jan 03 Javascript
浅谈JavaScript 数据属性和访问器属性
Sep 01 Javascript
js原生跨域_用script标签的简单实现
Sep 24 Javascript
node.js支持多用户web终端实现及安全方案
Nov 29 Javascript
WebPack配置vue多页面的技巧
May 15 Javascript
electron制作仿制qq聊天界面的示例代码
Nov 26 Javascript
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
Oct 05 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编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
Zend Framework自定义Helper类相关注意事项总结
2016/03/14 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
控制打印时页眉角的代码
2007/02/08 Javascript
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
jquery 圆形旋转图片滚动切换效果
2011/01/19 Javascript
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
extjs 时间范围选择自动判断的实现代码
2014/06/24 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
AngularJS 让人爱不释手的八种功能
2016/03/23 Javascript
js数组操作方法总结(必看篇)
2016/11/22 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
javascript回调函数的概念理解与用法分析
2017/05/27 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
JS实现网站吸顶条
2020/01/08 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
基于Python_脚本CGI、特点、应用、开发环境(详解)
2017/05/23 Python
django在接受post请求时显示403forbidden实例解析
2018/01/25 Python
在pandas多重索引multiIndex中选定指定索引的行方法
2018/11/16 Python
python中for in的用法详解
2020/04/17 Python
使用HTML5的表单验证的简单示例
2015/09/09 HTML / CSS
使用Html5多媒体实现微信语音功能
2019/07/26 HTML / CSS
学生个人总结范文
2015/02/15 职场文书
绿里奇迹观后感
2015/06/15 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书
html实现随机点名器的示例代码
2021/04/02 Javascript
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android
Java时间工具类Date的常用处理方法
2022/05/25 Java/Android
Django框架中视图的用法
2022/06/10 Python