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+ 拍照上传 和选择文件上传的更多相关文章

  1. 强大的支持多文件上传的jQuery文件上传插件Uploadify

    支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Fla ...

  2. 《如何将windows上的软件包或文件上传到linux服务上》

    昨天晚上朋友让我帮他简单的搭建个环境,他公司让他做款软件测试温度的,他自己搞的是嵌入式,在公司担任的是软件工程师,应届毕业生.也可能他们搞嵌入式的对这个linux系统不太熟,不会把windows上的软 ...

  3. SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程 ...

  4. SpringBoot - 实现文件上传1(单文件上传、常用上传参数配置)

    Spring Boot 对文件上传做了简化,基本做到了零配置,我们只需要在项目中添加 spring-boot-starter-web 依赖即可. 一.单文件上传 1,代码编写 (1)首先在 stati ...

  5. 基于SqlSugar的开发框架循序渐进介绍(7)-- 在文件上传模块中采用选项模式【Options】处理常规上传和FTP文件上传

    在基于SqlSugar的开发框架的服务层中处理文件上传的时候,我们一般有两种处理方式,一种是常规的把文件存储在本地文件系统中,一种是通过FTP方式存储到指定的FTP服务器上.这种处理应该由程序进行配置 ...

  6. skymvc文件上传支持多文件上传

    skymvc文件上传支持多文件上传 支持单文件.多文件上传 可以设定 文件大小.存储目录.文件类型 //上传的文件目录 $this->upload->uploaddir="att ...

  7. yii2.0单文件上传和多文件上传

    yii2文件上传使用到yii2自带的文件上传类UploadFIle,以及对应的模型规则,这里分别介绍单文件上传和多文件上传: yii2单个文件上传: 上传步奏,先创建上传表单模型model(包含验证规 ...

  8. 使用PHP实现文件上传和多文件上传

    PHP 2013 年 9 月 4 日 暂无评论 在PHP程序开发中,文件上传是一个使用非常普遍的功能,也是PHP程序员的必备技能之一.值得高兴的是,在PHP中实现文件上传功能要比在Java.C#等语言 ...

  9. HTML5 + AJAX ( 原生JavaScript ) 异步多文件上传

    这是在上篇 HTML5 + AJAX ( jQuery版本 ) 文件上传带进度条 的修改版本.后台代码不变就可以接着使用,但是脚本不再使用jQuery了,改为原生的 JavaScript 代码,所以我 ...

随机推荐

  1. Scala练习(二)

    3.计算指定目录下以".txt"为扩展名的文件个数.注:随便建个目录,建几个.txt文件即可. 4.计算"input_4.txt"文件中搜索词的出现次数,并按次 ...

  2. jquery 跨域访问问题 转

    http://zld406504302.iteye.com/blog/1677937 服务器,jsp <%@ page language="java" contentType ...

  3. HEAD FIRST HTML & CSS学习笔记

    CSS部分 1. border-bottom属性控制元素下边框的外观.   eg: border-bottom:1px solid maroon;  P265 下划线 text-decoration: ...

  4. IT求职中,笔试、面试的算法准备

    PS:此文章为转载,源地址:http://www.newsmth.net/nForum/#!article/CoderInterview/849     作者应该是在美国进行的笔试面试,感觉面试的的公 ...

  5. ORACLE 空表不能导出问题解决

    exp不导出空表,是11g的新特性,当表无数据时,不分配segment,以节省空间,所以exp导出的时候,不导出这些表. 先登录要导出的用户执行以下语句 先执行 select 'alter table ...

  6. 保存配置文件的appSetting

    /// <summary> /// 保存appSetting /// </summary> /// <param name="key">appS ...

  7. SpringMVC 文件上传&拦截器&异常处理

    文件上传 Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的.Spring 用 Jakarta Commons FileUpload ...

  8. asp.net mvc 防止开放重定向

    /// <summary> /// 防止开发重定向,篡改returnurl /// </summary> /// <param name="request&qu ...

  9. sprig里的controller之间的跳转的问题

    学习spring的controller,发现controller之间的跳转有些地方搞的不是很清楚,如果通过controller的return语句实现跳转的话,会造成request的丢失:具体怎么回事首 ...

  10. swift 定位

    iOS 8 及以上需要在info.plist文件中添加下面两个属性 NSLocationWhenInUseUsageDescription 使用应用期间 NSLocationAlwaysUsageDe ...