ZH奶酪:ionic+angularJS+cordova(FileTransfer)上传图片【移动端】

【功能介绍】

在开发应用的时候,经常会遇到需要上传图片的功能,比如修改个人资料的头像。本文介绍的是基于ionic框架,在移动端上传图片的功能。

【功能流程】

(1)点击页面上的头像,弹出一个对话框,选择[拍照]或者[从相册选择];

(2)选取/拍摄照片;

(3)上传照片;

【html核心代码】

<div ng-controller="myCtrl">
    <a ng-click="choosePicMenu()">
        <img ng-src="{{img}}">
    </a>
</div>

【myCtrl.js核心代码】

(1)选取图片的函数

//定义选择照片的函数,$scope.choosePicMenu = function() {    var type = ‘gallery‘;    $ionicActionSheet.show({        buttons: [            { text: ‘拍照‘ },            { text: ‘从相册选择‘ }        ],        titleText: ‘选择照片‘,        cancelText: ‘取消‘,        cancel: function() {        },        buttonClicked: function(index) {            if(index == 0){                type = ‘camera‘;            }else if(index == 1){                type = ‘gallery‘;            }       //Camera.getPicture(type)->根据选择的“选取图片”的方式进行选取            Camera.getPicture(type).then(          //返回一个imageURI,记录了照片的路径                function (imageURI) {                    $scope.me.image = imageURI;            //更新页面上的照片                    $scope.img = imageURI;                    $scope.$apply();                },                function (err) {                });            return true;        }    });};

(2)上传函数中的核心代码

//新建文件上传选项,并设置文件key,name,typevar options = new FileUploadOptions();options.fileKey="ffile";options.fileName=$scope.me.image.substr($scope.me.image.lastIndexOf(‘/‘)+1);options.mimeType="image/jpeg";//用params保存其他参数,例如昵称,年龄之类var params = {};params[‘name‘] = $scope.me.name;//把params添加到options的params中options.params = params;//新建FileTransfer对象var ft = new FileTransfer();//上传文件ft.upload(    $scope.me.image,    encodeURI(‘some url‘),//把图片及其他参数发送到这个URL,相当于一个请求,在后台接收图片及其他参数然后处理    uploadSuccess,    uploadError,    options);//upload成功的话function uploadSuccess(r) {    var resp = JSON.parse(r.response);    if(resp.status == 0){     //返回前一页面        $navHistory.back();    }else{        $ionicPopup.alert({            title: ‘Message‘,            cssClass: ‘alert-text‘,            template:  ‘Upload fail!‘        });    }}//upload失败的话function uploadError(error) {}

扩展:

这里有一篇文章,使用ng-cordova的file transfer插件进行上传和下载->http://santoshshinde2012.blogspot.sg/2015/03/file-upload-download-with-ng-cordova.html

时间: 2024-10-24 22:53:35

ZH奶酪:ionic+angularJS+cordova(FileTransfer)上传图片【移动端】的相关文章

ionic+angularJS+cordova(FileTransfer)上传图片

[功能介绍] 在开发应用的时候,经常会遇到需要上传图片的功能,比如修改个人资料的头像.本文介绍的是基于ionic框架,在移动端上传图片的功能. [功能流程] (1)点击页面上的头像,弹出一个对话框,选择[拍照]或者[从相册选择]: (2)选取/拍摄照片: (3)上传照片: [html核心代码] <div ng-controller="myCtrl"> <a ng-click="choosePicMenu()"> <img ng-src=

WebApp开发框架Ionic+AngularJS+Cordova

目前的手机APP有三类:原生APP.WebAPP.HybridApp:HybridApp结合了前两类APP各自的优点,越来越流行. Ionic Ionic是一个新的.可以使用HTML5构建混合移动应用的用户界面框架,它自称为是“本地与HTML5的结合”.该框架提供了很多基本的移动用户界面范例,例如像列表(lists).标签页栏(tabbars)和触发开关(toggleswitches)这样的简单条目.它还提供了更加复杂的可视化布局示例,例如在下面显示内容的滑出式菜单. Ionic宣称他们极度强调

ZH奶酪:AngularJS/JavaScript上传图片【PC端】

[功能介绍] 类似与修改个人信息的时候,点击头像,就可以完成选择照片.上传照片等步骤达到替换头像的目的. [运行流程] (1)点击头像 (2)选择头像 (3)点击“完成”,上传头像 1.HTML图片部分的代码(个人信息还会包含姓名[id="name"].介绍[id="intro"]元素等) <div> <img id="avatar"ng-src="{{avatar}}" ng-click="cho

使用Ionic + Apache Cordova开发跨平台混合型的移动应用

JavaScript 写多了,要想真正提高js水平,研究其他js框架源码是不错的选择.Github上大部分都是js.css相关的项目,可以有目的性的 check out 下来,研读研读,还是非常收益的,跟随nb的人,也会慢慢变的nb. 场景:有一个朋友,他公司是做移动应用开发的,3个安卓开发人员,3个 ios,然后是 java 开发,美工 ,10多个人的公司,主要是以接项目为主,一个项目(电商.微信.聊天 类型的)大概在20万左右, 差不多1个半月 做完(代码质量能不能保证,不知道,不过我觉得开

ionic 和cordova的区别是什么

很多新朋友ionic基础教程都学完了,还是不知道ionic 和cordova 是什么关系 ionic是什么: Ionic(ionicframework)一款开源的Html5移动App开发框架,是AngularJS移动端解决方案,Ionic以流行的跨平台移动app开发框架phoengap为蓝本,让开发者可以通过命令行工具快速生成android  ios移动app应用 phoengap是什么? phonegap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发

【Ionic+AngularJS 开发】之『个人日常管理』App(一)

写在前面的话 过去一年自己接触了不少手机前端开发,得益于现在手机性能的提升和4G普及,感觉使用混合技术开发手机App已经可以满足越来越多的应用场景了.新年伊始,对自己2016年所学知识做一个阶段性总结,记录一个自制的"小而萌"Hybrid App开发历程,共勉! [扩展阅读] 企业移动应用开发 混合开发成香饽饽 2016年JavaScript领域中最受欢迎的"明星"们 Hybrid APP混合开发的一些经验和总结 App预览 (*模糊化的个人数据) 简介 个人日常管

安装ionic 以及 cordova 环境配置详细过程,(错误解决)

[摘要:全部装置进程: 1. jdk 1.7.2 (http://www.oracle.com/technetwork/java/javase/downloads/index.html) 装置好以后 情况变量设置装备摆设: 新建体系变量JAVA_HOME 战CLASSPATH 变量名:JAVA_HOME 变量:C:Program FilesJavajdk1.7.0 变量] 整个安装过程: 1. jdk 1.7.2   (http://www.oracle.com/technetwork/java

ZH奶酪:Ubuntu 14.04配置LAMP(Linux、Apache、MySQL、PHP)

ZH奶酪:Ubuntu 14.04安装LAMP(Linux,Apache,MySQL,PHP) 之前已经介绍过LAMP的安装,这边文章主要讲解一下LAMP的配置. 1.配置Apache (1)调整KeepAlive设置(参考[1].[2]): 在内存非常充足的服务器上,不管是否关闭 KeepAlive 功能,服务器性能不会有明显变化: 如果服务器内存较少,或者服务器有非常大量的文件系统访问时,或者主要处理动态网页服务,关闭 KeepAlive 后可以节省很多内存,而节省出来的内存用于文件系统Ca

AngularJS Cordova插件介绍

ngCordova是在Cordova Api基础上封装的一系列开源的AngularJs服务和扩展,让开发者可以方便的在HybridApp开发中调用设备能力,即可以在AngularJs代码中访问设备能力Api. 根据我的经验,在cordova插件的sucess和error js回调方法中,是无法使用 angularjs的$scope对象和注入的方法的,只能访问全局的方法和变量,这样会导致很多麻烦,必须使用传统的js方法写很多难看的代码.使用ngCordova应该可以解决这个问题. 目前ngCord