MUI 拍照和从系统相册选择图片上传

转载于 https://blog.youkuaiyun.com/u014452812/article/details/78082776

1 调用手机相机的功能(可以查看官方API  http://www.html5plus.org/doc/zh_cn/camera.html)

2 调用系统相册的功能(可以查看官方API  http://www.html5plus.org/doc/zh_cn/gallery.html)

3 照片资源上传到服务(可以查看官方API  http://www.html5plus.org/doc/zh_cn/uploader.html)

 

下面是我的使用例子,

一, 调用 打开系统选择框按钮

 

    document.getElementById('headImage').addEventListener('tap', function() {
        if (mui.os.plus) {
            var buttonTit = [{
                title: "拍照"
            }, {
                title: "从手机相册选择"
            }];
            
            plus.nativeUI.actionSheet({
                title: "上传图片",
                cancel: "取消",
                buttons: buttonTit
            }, function(b) { /*actionSheet 按钮点击事件*/
                switch (b.index) {
                    case 0:
                        break;
                    case 1:
                        getImage(); /*拍照*/
                        break;
                    case 2:
                        galleryImg();/*打开相册*/
                        break;
                    default:
                        break;
                }
            })
        }        
    }, false);

 

 

二, 打开相机功能,拿到照片的路径

 

    // 拍照获取图片
    function getImage() {
        var c = plus.camera.getCamera();
        c.captureImage(function(e) {
            plus.io.resolveLocalFileSystemURL(e, function(entry) {
                var imgSrc = entry.toLocalURL() + "?version=" + new Date().getTime(); //拿到图片路径
                // 其他操作,比如预览展示
     
            }, function(e) {
                console.log("读取拍照文件错误:" + e.message);
            });
        }, function(s) {
            console.log("error" + s);
        }, {
            filename: "_doc/camera/"
        })
    }


三, 打开手机相册

 

    // 从相册中选择图片
    function galleryImg(){
        // 从相册中选择图片
        plus.gallery.pick( function(e){
            for(var i in e.files){
                var fileSrc = e.files[i];
                // 其他操作,比如预览展示
            }
        }, function ( e ) {
            console.log( "取消选择图片" );
        },{
            filter: "image",
            multiple: true,
            maximum: 5,
            system: false,
            onmaxed: function() {
                plus.nativeUI.alert('最多只能选择5张图片');
            }
        });
    }

四, 上传到服务器

 

 

    // 上传的方法
    function upload(){
           MicroTaskGUID = common.guid();
           
           var rul = "服务器地址"
           
           var imgsArr = mui(".task-img"); // 要上传的 img 标签
           
           mui.each(imgsArr, function(index, item){
    //         console.log(index)
    //         console.log(item.src)
               createUp(item)
           })
        
        
        function createUp (files) {
            var task = plus.uploader.createUpload(url,
                {method:"POST"},
                function(t,status){ //上传完成
                    if(status==200){
                        console.log("上传成功:"+t.responseText);
                    }else{
                        console.log("上传失败:"+status);
                    }
                }
            );
            //添加其他参数
    //        task.addData("name","test");
            // 页面中要上传的 图片路径
            task.addFile(files.src,{key:files.src});
            task.start();
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值