zoukankan      html  css  js  c++  java
  • mui调本地相册上传图片

    mui调用本地相册和拍照功能

    图例

    只用更改上传图片ajax部分代码即可

    1、html

    <div class="headdiv">
        <img src="" id="userImg"/>
    </div>

    2、js

    <script>
        /*调相机本地相抵上传图片*/
        mui.plusReady(function(){
            document.getElementById('userImg').addEventListener('tap',function(){
                if(mui.os.plus){
                    var a=[{
                        title:'拍照'
                    },{
                        title:'从手机相册选择'
                    }];
                    plus.nativeUI.actionSheet({
    //                  title:'修改头像',
                        cancel:'取消',
                        buttons:a
                    },function(b){
                        switch(b.index){
                            case 0:
                                break;
                            case 1:
                                //拍照
                                getImages();
                                break;
                            case 2:
                                //打开相册
                                galleryImages();
                                break;
                            default:
                                break;
                        }
                    },false);
                }
            });
    
            //拍照
            function getImages(){
                var mobileCamera=plus.camera.getCamera();
                mobileCamera.captureImage(function(e){
                    plus.io.resolveLocalFileSystemURL(e,function(entry){
                        var path=entry.toLocalURL()+'?version='+new Date().getTime();
                        uploadHeadImg(path);
                        console.log(path);
                    },function(err){
                        console.log("读取拍照文件错误");
                    });
                },function(e){
                    console.log("er",err);
                },function(){
                    filename:'_doc/head.png';
                });
            }
    
            //本地相册选择 
            function galleryImages() { 
                plus.gallery.pick(function(a) { 
                    plus.io.resolveLocalFileSystemURL(a, function(entry) { 
                        plus.io.resolveLocalFileSystemURL("_doc/", function(root) { 
                            root.getFile("head.png", {}, function(file) { 
                                //文件已存在 
                                file.remove(function() { 
                                    console.log("file remove success"); 
                                    entry.copyTo(root, 'head.png', function(e) { 
                                            var e = e.fullPath + "?version=" + new Date().getTime(); 
                                            $("#userImg").attr("src",e);
                                            console.log(e);
                                            uploadHeadImg(e); /*上传图片*/
                                            
                                            //变更大图预览的src 
                                            //目前仅有一张图片,暂时如此处理,后续需要通过标准组件实现 
                                        }, 
                                        function(e) { 
                                            console.log('copy image fail:' + e.message); 
                                        }); 
                                }, function() { 
                                    console.log("delete image fail:" + e.message); 
                                }); 
                            }, function() { 
                                //文件不存在 
                                entry.copyTo(root, 'head.png', function(e) { 
                                        var path = e.fullPath + "?version=" + new Date().getTime(); 
                                        uploadHeadImg(path); /*上传图片*/ 
                                    }, 
                                    function(e) { 
                                        console.log('copy image fail:' + e.message); 
                                    }); 
                            }); 
                        }, function(e) { 
                            console.log("get _www folder fail"); 
                        }) 
                    }, function(e) { 
                        console.log("读取拍照文件错误:" + e.message); 
                    }); 
                }, function(a) {}, { 
                    filter: "image" 
                }) 
            }; 
      
            function uploadPics(u) {
                var urls = u.src;
                var img = new Image();
                img.src = urls;
                img.onload = function() {
                    var that = img;
                    var w = that.width,
                        h = that.height,
                        scale = w / h;
                     w = 320 || w;
                     h = w / scale;
                    var canvas = document.createElement("canvas");
                    var ctx = canvas.getContext("2d");
                    $(canvas).attr({
                         w,
                        height: h
                    });
                    ctx.drawImage(that, 0, 0, w, h);
                    var base64 = canvas.toDataURL("image/jpeg", 1); //1 || 0.8
                    var aa = {
                        "fileData": base64
                    };
                    $.ajax({
                        async: false, //是否异步
                        cache: false, //是否使用缓存
                        type: "POST",
                        data: JSON.stringify(aa),
                        dataType: "json",
                        contentType: "application/json",
                        url: "http://",  //改变此处的接口名即可
                        success: function(results) {
                            u.src = "http://" + results.result;
                        },
                        error: function(result) {
                            alert("系统繁忙!"); 
                        }
                    });
                }
            }
            //上传图片
            function uploadHeadImg(imgPath){
                //选中图片之后,头像当前的照片变为选择的照片
                var mainImg=document.getElementById('userImg'); 
                uploadPics(mainImg); 
            }
        });
    </script>
  • 相关阅读:
    C puzzles详解【51-57题】
    C puzzles详解【46-50题】
    C puzzles详解【38-45题】
    C puzzles详解【34-37题】
    C puzzles详解【31-33题】
    C puzzles详解【26-30题】
    C puzzles详解【21-25题】
    C puzzles详解【16-20题】
    使用C++模板实现栈的求最小值功能
    模拟求幂运算,考虑的已经很周全了
  • 原文地址:https://www.cnblogs.com/dxt510/p/8303551.html
Copyright © 2011-2022 走看看