前言

做app不得不谈的问题就是文件上传。用hbuilder开发app让上传变的非常easy。

Uploader

Uploader模块管理网络上传任务,用于从本地上传各种文件到server,并支持跨域訪问操作。

通过plus.uploader可获取上传管理对象。

Uploader上传使用HTTP的POST方式提交数据,数据格式符合Multipart/form-data规范。即rfc1867(Form-based File Upload in HTML)协议。

很多其它内容:Uploader

代码

qiao.h.upload = function(options){
if(!options) return; var url = options.url;
var filepath = options.filepath;
var datas = options.datas || [];
var success = options.success;
var fail = options.fail;
if(url && filepath){
var task = plus.uploader.createUpload(url, {
method: "POST",
blocksize: 204800,
priority: 100
},
function(t, status){
if(status == 200){
if(success) success(t);
}else{
if(fail) fail(status);
}
}
);
task.addFile(filepath, {key: 'file'});
if(datas && datas.length){
for(var i=0; i<datas.length; i++){
var data = datas[i];
task.addData(data.key, data.value);
}
}
task.start();
}
};

对uploader的上传做了封装,

能够看到其核心是一个createUpload方法,创建一个Uploader对象,

创建这个对象的时候,会写好成功和失败的回调函数。

创建成功后为这个upload对象加入数据。包含要上传的文件和其它数据,

最后运行start方法開始上传。

识岁

在本zpp中。当用户选择相片或者拍照生成相片后。仅仅要点击“開始识别”button,就会运行上传操作,

代码例如以下:

// uploadImg
var url,tsrc;
function uploadImg(){
var src = $('#faceImg').attr('src');
if(src){
beginw(); if(tsrc && tsrc == src && url){
facepp();
}else{
tsrc = src;
var token = qiao.qiniu.uptoken(src);
var filename = qiao.qiniu.file;
qiao.h.upload({
url: 'http://upload.qiniu.com/',
filepath: src,
datas: [
{key: 'key', value : filename},
{key: 'token', value : token}
],
success: function(){
url = qiao.qiniu.url();
facepp();
},
fail: function(s){
showRes('上传文件失败:' + s);
}
});
}
}else{
showRes('请先选择要识别的照片! ');
}
}

为了防止每次点击都上传照片。所以做了一个推断。假设app中的照片src没有变化就不上传了。

否则则用封装好的qiao.h.upload进行上传。

假设上传失败则给与提示。上传成功则进行图片识别。

很多其它教程:

Hbuilder开发App实战1-识岁:http://uikoo9.com/book/detail/5

很多其它学习笔记:http://uikoo9.com/book

Hbuilder开发app实战-识岁03-文件上传的更多相关文章

  1. Hbuilder开发app实战-识岁06-face++的js实现【完结】

    前言 因为识岁app比較简单.所以这节就完结吧, 当然另一些能够优化完好的地方,可是个人兴趣不是非常大, 有想继续完好的,源代码在这里:https://github.com/uikoo9/shisui ...

  2. python 全栈开发,Day75(Django与Ajax,文件上传,ajax发送json数据,基于Ajax的文件上传,SweetAlert插件)

    昨日内容回顾 基于对象的跨表查询 正向查询:关联属性在A表中,所以A对象找关联B表数据,正向查询 反向查询:关联属性在A表中,所以B对象找A对象,反向查询 一对多: 按字段:xx book ----- ...

  3. 循序渐进学.Net Core Web Api开发系列【5】:文件上传

    系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇介绍通 ...

  4. [SAP ABAP开发技术总结]文本文件、Excel文件上传下传

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  5. mui开发app之多图压缩与上传(仿qq空间说说发表)

    欲实现效果图 提出需求点: 用户可自由添加删除替换多张图片,并且显示相应缩略图,限制为8张 用户可选择压缩图或直接上传原图功能 返回提醒用户会丢失填写的信息 下面一个个实现上述需求,从简单到复杂: 需 ...

  6. android开发里跳过的坑——图片文件上传失败

    使用的apache的httpclient的jar包,做的http图片上传,上传时,服务器总返文件格式不对.后来发现,是由于在创建FileBody时,使用了默认的ContentType引起的.所以服务器 ...

  7. Node开发文件上传系统及向七牛云存储和亚马逊AWS S3的文件上传

    背景起,有奏乐: 有伟人曰:学习技能的最好途径莫过于理论与实践相结合. 初学Node这货时,每每读教程必会Fall asleep. 当真要开发系统时,顿觉精神百倍,即便踩坑无数也不失斗志. 因为同团队 ...

  8. iOS开发之结合asp.net webservice实现文件上传下载

    iOS开发中会经常用到文件上传下载的功能,这篇文件将介绍一下使用asp.net webservice实现文件上传下载. 首先,让我们看下文件下载. 这里我们下载cnblogs上的一个zip文件.使用N ...

  9. Vue.js 3.0搭配.NET Core写一个牛B的文件上传组件

    在开发Web应用程序中,文件上传是经常用到的一个功能. 在Jquery时代,做上传功能,一般找jQuery插件就够了,很少有人去探究上传文件插件到底是怎么做的. 简单列一下我们要做的技术点和功能点 使 ...

随机推荐

  1. 更新django到2.x

    django-2.x 已经发布了.想体验一下它的新功能.于是把之前电脑上的django-1.11.7uninstall 掉 一.卸载django-1.11.7: pip3 uninstall djan ...

  2. Spring Security教程(五):自定义过滤器从数据库从获取资源信息

    在之前的几篇security教程中,资源和所对应的权限都是在xml中进行配置的,也就在http标签中配置intercept-url,试想要是配置的对象不多,那还好,但是平常实际开发中都往往是非常多的资 ...

  3. MySQL 5.6学习笔记(索引的创建与删除)

    1. 创建索引 1.1 创建新表时同时建立索引 语法: create table table_name[col_name data_type] [unique|fulltext|spatial][in ...

  4. [转载]Cortana 设计指导方针

    来源:@微软中国MSDN,源地址:http://weibo.com/p/1001603898586285925224 使用语音命令,延伸 Cortana 与您的应用程序所提供的功能.启动应用程序,启动 ...

  5. Shiro系列(3) - What is shiro?

    什么是shiro? Shiro是apache的一个开源权限管理的框架,它实现用户身份认证,权限授权.加密.会话管理等功能,组成了一个通用的安全认证框架 使用shiro来实现权限管理,可以非常有效的提高 ...

  6. 【Unity】第6章 Unity脚本开发基础

    分类:Unity.C#.VS2015 创建日期:2016-04-16 一.简介 游戏吸引人的地方在于它的可交互性.如果游戏没有交互,场景做得再美观和精致,也难以称其为游戏. 在Unity中,游戏交互通 ...

  7. 在sublime text3中安装sass编译scss文件

    一 搭建环境 首先安装ruby环境,不然会编译失败,在这里下载ruby ,安装的时候选择第二项 在cmd中输入gem -v 显示版本号说明ruby安装成功 待ruby安装成功后,在cmd中输入 gem ...

  8. jsonrpc使用

    jsonrpc使用 1.什么是rpc RPC(Remote Procedure Call)远程过程调用,简单说就是通过网络请求服务,不需要了解底层网络技术的协议. 常用语分布式应用程序. 2.rpc数 ...

  9. 对JSON格式的城市按照拼音首字母排序

    需求说明: App应用中最常见的一种操作就是对城市按照拼音首字母排序,以方便选择城市.而已有的json格式的城市数据是没有这种排序的. 已有的json格式的城市数据格式如下[简化之后]: 数据格式说明 ...

  10. weblogic域备份脚本

    一直一来,由于空间问题,weblogic域很少备份,偶尔会手动备份一次,这运维做得不称职,今天有时间,写个小脚本来定时备份. 1.脚本备份文件目录结构 [weblogic@mylinux ~]$ tr ...