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,因此如果服务器需要保存图片 需要解码。

时间: 2024-12-05 20:28:34

HTML5+ 拍照上传 和选择文件上传的相关文章

支持多文件上传的jQuery文件上传插件Uploadify

支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Flash,主要特性:支持多文件上传.HTML5版本可拖拽上传.实时上传进度条显示.强大的参数定制功能,如文件大小.文件类型.按钮图片定义.上传文件脚本等. Flash版本使用方法: 1.加载JS和CSS ? 1 2 3 <script src="jquery/1.7.1/jquery.min.js

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

支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Flash,主要特性:支持多文件上传.HTML5版本可拖拽上传.实时上传进度条显示.强大的参数定制功能,如文件大小.文件类型.按钮图片定义.上传文件脚本等. Flash版本使用方法: 1.加载JS和CSS ? 1 2 3 <script src="jquery/1.7.1/jquery.min.js

SpringMVC实现单文件上传、多文件上传、文件列表显示、文件下载

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload.jar+connom-io.jar+commons-logging,jar+jstl.jar+standard.jar 整个相关的包如下: 整个工程目录如下: 二.配置web.xml和SpringMVC文件

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

昨天晚上朋友让我帮他简单的搭建个环境,他公司让他做款软件测试温度的,他自己搞的是嵌入式,在公司担任的是软件工程师,应届毕业生.也可能他们搞嵌入式的对这个linux系统不太熟,不会把windows上的软件包或文件上传上linux服务上,编译还凑合.我今天到网上搜了一下不会的人还是蛮多的,搜索引擎一搜一大把,下面就来说说这个so easy问题. 如何将windows上的软件包或文件上传到linux服务上,下一句就是如何让将linux的文件下载到win上.哈哈 方法不止这一种,有超多的方法,要是虚拟机

文件上传下载之文件上传

13.1  文件上传 13.1.1  概述 在开发基于Web的应用的时候,经常会碰到需要实现文件上传.下载的功能,比如编辑某个商品,需要给它上传一个图片等等. 不使用Struts2的话,可以有很多种方式来实现文件上传,比如使用Apache的Common-FileUpload等.但是这些传统的方式,实现起来非常麻烦,需要写很多代码来进行控制. 现在使用Struts2来实现文件上传的功能,会更加简单和方便,事实上,Struts2的文件上传功能,默认就是基于Common-FileUpload来实现的,

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

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程免费下载 一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload.jar+connom-io.jar+commons-logging,jar+jstl.jar+standard.jar 整个相关的包如下: 整个工程目录如下: 二.配置web.xml和Spr

php单文件上传和多文件上传

php上传文件步骤1.判断文件是否是表单提交2.判断是否有选择文件3.判断文件存储路径是否存在4.判断文件类型是否符合5.判断错误类型6.判断是否存在临时文件7.判断是否上传成功 要求上传的文件是word 和 ppt类型 单文件上传代码: <?print_r($_FILES);extract($_FILES["f1"]);//判断是否为表单上传if(!isset($_POST["sub"])){exit("请通过表单上传");}//判断是否

***使用PHP实现文件上传和多文件上传

http://www.365mini.com/page/php-upload-file.htm 在PHP程序开发中,文件上传是一个使用非常普遍的功能,也是PHP程序员的必备技能之一.值得高兴的是,在PHP中实现文件上传功能要比在Java.C#等语言中简单得多.下面我们结合具体的代码实例来详细介绍如何通过PHP实现文件上传和多文件上传功能. 要使用PHP实现文件上传功能,我们先来编写两个php文件:index.php和upload.php.其中,index.php页面用于提交文件上传的表单请求,u

ajaxFileUpload+struts2实现多文件上传(动态添加文件上传框)

上篇文章http://blog.csdn.net/itmyhome1990/article/details/36396291介绍了ajaxfileupload实现多文件上传, 但只是固定的文件个数,如果需求不确定是多少文件 则我们就需要动态的添加文件上传框,以实现灵活性. 基于上篇基本框架是不变的,主要修改以下几个方面 1.jQuery实现动态添加删除文件上传框 2.获取文件上传框的ID 3.ajaxfileupload.js里将ID数组转换为需要的Object数组 依次解决上面问题 一.实现动