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 相关文章推荐
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
Sep 16 Javascript
基于jquery的simpleValidate简易验证插件
Jan 31 Javascript
js Dialog 去掉右上角的X关闭功能
Apr 23 Javascript
Egret引擎开发指南之运行项目
Sep 03 Javascript
JS获取当前网页大小以及屏幕分辨率等
Sep 05 Javascript
Bootstrap基本样式学习笔记之图片(6)
Dec 07 Javascript
纯js实现画一棵树的示例
Sep 05 Javascript
简单的三步vuex入门
May 20 Javascript
BootStrap模态框闪退问题实例代码详解
Dec 10 Javascript
vue中input的v-model清空操作
Sep 06 Javascript
vue遍历对象中的数组取值示例
Nov 07 Javascript
React-vscode使用jsx语法的问题及解决方法
Jun 21 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
Laravel 5.5官方推荐的Nginx配置学习教程
2017/10/06 PHP
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
编写兼容IE和FireFox的脚本
2009/05/18 Javascript
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
Jquery 1.9.1源码分析系列(十二)之筛选操作
2015/12/02 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
2016/02/15 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
JavaScript引用类型Array实例分析
2018/07/24 Javascript
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
vue车牌号校验和银行校验实战
2019/01/23 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
[01:39:42]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python中os.path用法分析
2015/01/15 Python
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
Python3爬虫使用Fidder实现APP爬取示例
2018/11/27 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
python实现根据文件格式分类
2019/10/31 Python
使用python实现画AR模型时序图
2019/11/20 Python
分享一个python的aes加密代码
2020/12/22 Python
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
Boda Skins皮衣官网:奢侈皮夹克,全球配送
2016/12/15 全球购物
Farnell德国:电子元器件供应商
2018/07/10 全球购物
澳大利亚当地最大的时装生产商:Cue
2018/08/06 全球购物
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
无财产无子女离婚协议书范文
2014/09/14 职场文书
个人批评与自我批评
2014/10/15 职场文书
社会实践心得体会范文
2016/01/14 职场文书