HTML5+ 拍照上传 和选择文件上传
HTML 页面内容包含以下标签即可:
<input id="btn_select" type="button" value="从相册选择" />
<input id="btn_takephoto" type="button" value="拍照" />
<img id="imgViewer" src="" alt="暂无图片" width="100" height="100"/>
<input id="btn_save" type="button" value="确认上传" />
JS实现部分:
(function() {
var url = "XXXXXXXXXX上传的文件地址";
var file;
var w = null;
// H5 plus事件处理
function plusReady() {
//w=plus.nativeUI.showWaiting();
//H5 准备好的时候 绑定拍照事件
//拍照单机事件
$("#btn_takephoto").bind("click", function() {
//拍照
plus.camera.getCamera().captureImage(function(p) {
plus.io.resolveLocalFileSystemURL(p, function(entry) {
console.log(entry.toLocalURL());
$("#imgViewer").attr("src", entry.toLocalURL());
}, function(e) {
outLine("读取拍照文件错误:" + e.message);
});
});
});
//从相册选择
$("#btn_select").bind("click", function() {
plus.gallery.pick(function(p) {
console.log(p);
$("#imgViewer").attr("src", p);
});
});
//上传文件
$("#btn_save").bind("click", function() {
var wt = plus.nativeUI.showWaiting();
//根据路径读取到文件
plus.io.resolveLocalFileSystemURL($("#imgViewer").attr("src"),function(entry){
entry.file( function(file){
var fileReader = new plus.io.FileReader();
fileReader.readAsDataURL(file);
fileReader.onloadend = function(e) {
var f = $("#imgViewer").attr("src");
var filename = f.replace(f.substring(0, f.lastIndexOf('/') + 1), '');
var param = {
fileName: filename
dataInput: e.target.result.toString()
};
//自定义的ajax方法
ToolHelper.AsyncAjax(url, param, function(data, para) {
wt.close();
if (data[0].responseCode != undefined && data[0].responseCode != "") {
$.dialog.alert(data[0].responseMessage);
} else {
$.dialog.alert("上传成功");
}
});
}
});
});
});
}
if (window.plus) {
plusReady();
} else {
document.addEventListener("plusready", plusReady, false);
}
return BaseObj = {
save: saveEdit
};
})();
JavaScript
以上两个部分 用到了 dcloud html+中的 相机相关事件和方法,以及IO 根据地址 获取文件流的方法,上传到服务器的图片为base64,因此如果服务器需要保存图片 需要解码。
HTML5+ 拍照上传 和选择文件上传的更多相关文章
- 强大的支持多文件上传的jQuery文件上传插件Uploadify
支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Fla ...
- 《如何将windows上的软件包或文件上传到linux服务上》
昨天晚上朋友让我帮他简单的搭建个环境,他公司让他做款软件测试温度的,他自己搞的是嵌入式,在公司担任的是软件工程师,应届毕业生.也可能他们搞嵌入式的对这个linux系统不太熟,不会把windows上的软 ...
- SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程 ...
- SpringBoot - 实现文件上传1(单文件上传、常用上传参数配置)
Spring Boot 对文件上传做了简化,基本做到了零配置,我们只需要在项目中添加 spring-boot-starter-web 依赖即可. 一.单文件上传 1,代码编写 (1)首先在 stati ...
- 基于SqlSugar的开发框架循序渐进介绍(7)-- 在文件上传模块中采用选项模式【Options】处理常规上传和FTP文件上传
在基于SqlSugar的开发框架的服务层中处理文件上传的时候,我们一般有两种处理方式,一种是常规的把文件存储在本地文件系统中,一种是通过FTP方式存储到指定的FTP服务器上.这种处理应该由程序进行配置 ...
- skymvc文件上传支持多文件上传
skymvc文件上传支持多文件上传 支持单文件.多文件上传 可以设定 文件大小.存储目录.文件类型 //上传的文件目录 $this->upload->uploaddir="att ...
- yii2.0单文件上传和多文件上传
yii2文件上传使用到yii2自带的文件上传类UploadFIle,以及对应的模型规则,这里分别介绍单文件上传和多文件上传: yii2单个文件上传: 上传步奏,先创建上传表单模型model(包含验证规 ...
- 使用PHP实现文件上传和多文件上传
PHP 2013 年 9 月 4 日 暂无评论 在PHP程序开发中,文件上传是一个使用非常普遍的功能,也是PHP程序员的必备技能之一.值得高兴的是,在PHP中实现文件上传功能要比在Java.C#等语言 ...
- HTML5 + AJAX ( 原生JavaScript ) 异步多文件上传
这是在上篇 HTML5 + AJAX ( jQuery版本 ) 文件上传带进度条 的修改版本.后台代码不变就可以接着使用,但是脚本不再使用jQuery了,改为原生的 JavaScript 代码,所以我 ...
随机推荐
- java 中Session 持久化问题
首先: 今天发现了个session 持久化的问题 在Tomcat 停止运行后再启动 session 中保存的东西还会存在 ,百度了一下 原理 1.Session Create 时 2.Sessio ...
- ASP.NET MVC多表单提交
多表单提交需要写清路径,以便主程序可以找到 方法一:直接写路径, action="~/Home/other1" "~"表示从根目录开始 方法2:@using ...
- table表格宽度固定,同时td内容过长也不会被撑开
table表格宽度固定,同时td内容过长也不会被撑开,设置如下css: table{table-layout:fixed;word-break:break-all;}
- [转]C#中POST数据和接收的几种方式
POST方式提交数据,一种众所周知的方式: html页面中使用form表单提交,接收方式,使用Request.Form[""]或Request.QueryString[" ...
- ios新特性(泛型)
协变 子类转父类 逆变父类给子类赋值
- java 创建线程的三种方法Callable,Runnable,Thread比较及用法
转自:http://www.chinaitlab.com/Java/line/942440.html 编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互.一般有三种方法,Thread, ...
- Oracle表的建立条件
约束:1.非空约束a.字段不能为nullb.null 不等于 ''空字符串,oracle不允许把''写入到非空字符串型字段中2.主键约束a.指定某一列或某几列为主键列b.主键列必须具有非空约束c.主键 ...
- Yii2.0 rules验证规则大全
required : 必须值验证属性 [['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息']; #说明:CRequiredV ...
- bzoj 3504: [Cqoi2014]危桥
#include<cstdio> #include<iostream> #include<cstring> #define M 100009 #define inf ...
- LeetCode 177 Nth-Highest Salary mysql,取第n条数据,limit子句 难度:1
https://leetcode.com/problems/nth-highest-salary/ ATTENTION:limit 子句只能接受int常量,不能接受运算式 CREATE FUNCTIO ...