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 动态table添加colspan\rowspan 参数的方法
Jul 25 Javascript
JavaScript 语法集锦 脚本之家基础推荐
Nov 15 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
Oct 18 Javascript
jQuery操作元素css样式的三种方法
Jun 04 Javascript
全面解析Bootstrap排版使用方法(文字样式)
Nov 30 Javascript
微信小程序链接传参并跳转新页面
Nov 29 Javascript
百度小程序之间的页面通信过程详解
Jul 18 Javascript
React+TypeScript+webpack4多入口配置详解
Aug 08 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
Nov 05 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
Jul 22 Javascript
vue addRoutes路由动态加载操作
Aug 04 Javascript
Vue 打包后相对路径的引用问题
Jun 05 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
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
2019/10/08 PHP
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
浅析js封装和作用域
2013/07/09 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
javascript实现数独解法
2015/03/14 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
2017/08/04 jQuery
vue打包相关细节整理(小结)
2018/09/28 Javascript
基于Vue实现电商SKU组合算法问题
2019/05/29 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
python多线程编程中的join函数使用心得
2014/09/02 Python
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
python 字典中文key处理,读取,比较方法
2018/07/06 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
2019/08/13 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
Python调用C语言程序方法解析
2020/07/07 Python
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
css3动画效果小结(推荐)
2016/07/25 HTML / CSS
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
Saks Fifth Avenue澳洲/亚太地区:萨克斯第五大道精品百货店
2019/06/09 全球购物
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
社区党建工作汇报材料
2014/08/14 职场文书
2014年标准化工作总结
2014/12/17 职场文书
投标承诺函范文
2015/01/21 职场文书
升学宴家长致辞
2015/07/27 职场文书
大学迎新生的欢迎词
2019/06/25 职场文书
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL