吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3332|回复: 9
收起左侧

[其他转载] MUI上传图片案例9宫格图片多选删除

  [复制链接]
fengrui99 发表于 2019-7-24 14:21
本帖最后由 fengrui99 于 2019-7-24 15:25 编辑

转载文章来自:https://www.frbkw.com/1874/


提示:在百度网盘下载文件后,需要导入hbuilder工具使用模拟器运行才有效果哦!上传功能要自己配置下服务器

首先万恶的开头介绍一下LJ的 MUI


真正彻底的跨平台开发,不是简单的跨iOS和Android。
基于mui,一套HTML5工程,通过前端构建工具(如grunt)条件编译,可同时发行到iOS Appstore、安卓各大应用商店、普通手机浏览器、微信H5和流应用。
并且在每个平台上,都能调用该平台的专有API达到原生体验

官方说什么都对!网络收集有以下功效,包治甲方**百病
  • 支持拍照,相册选择
  • 支持上传到服务器
  • 支持多选图片 大概9张吧
  • 支持点击删除图片
文中一张图,一刀9999(作图太累 随意放一张) f0814bd242fd9c2.jpg

整体源码包下载:链接: https://pan.baidu.com/s/1xxPqN8N9Nlt_bpyypb9aBQ 提取码: sckp

大佬直接看源码构造
[Asm] 纯文本查看 复制代码
<!DOCTYPE html>
<html>

        <head>
                <meta charset="utf-8">
                <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
                <title></title>
                <script src="js/mui.min.js"></script>
                <link href="css/mui.min.css" rel="stylesheet" />
                <link rel="stylesheet" type="text/css" href="css/previewImage.css" />
                <style>
                        #imgaes{
                                padding: 0rem;
                                margin: 0rem;
                        }
                        img{
                                height: auto;
                                width: 100%;
                        }
                </style>
                <script type="text/javascript" charset="utf-8">
                        mui.init();
                </script>
        </head>

        <body>

                <div class="mui-content">

                        <div style="text-align: center; padding: 50px;">
                                <input type="button" id="headImage" value="附件" />
                                <input type="button" id="uploadImage" value="上传" />
                        </div>

                        <!--放图片元素-->
                        <ul id="imgaes">
                        </ul>

                </div>

                <script type="text/javascript" src="js/jquery-3.3.1.min.js" ></script>
                <script type="text/javascript" src="js/mui.previewimage.js"></script>
                <script type="text/javascript" src="js/mui.zoom.js"></script>
                <script>
                        //附件上传成功后返回的json
                        var fileJson = "";
                        //上传附件
                        var fileArr = [];
                        var urls = [];
                        var imagess = [];
                        // 拍照获取图片  
                        function getImage(imgsUI) {
                                var c = plus.camera.getCamera();
                                c.captureImage(function(e) {
                                        plus.io.resolveLocalFileSystemURL(e, function(entry) {
                                                var imgSrc = entry.toLocalURL() + "?version=" + new Date().getTime(); //拿到图片路径  
                                                setFile(imgSrc);
                                                setHtml(imgSrc, imgsUI);
                                                urls = [];
                                                imagess = [];
                                                loadImgs();
                                        }, function(e) {
                                                console.log("读取拍照文件错误:" + e.message);
                                        });
                                }, function(s) {
                                        console.log("erroraaa" + s.message);
                                }, {
                                        filename: "_doc/camera/"
                                })
                        }

                        function getHeadImage(imgsUI) {

                                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(imgsUI); /*拍照*/
                                                                break;
                                                        case 2:
                                                                galleryImg(imgsUI); /*打开相册*/
                                                                break;
                                                        default:
                                                                break;
                                                }
                                        })
                                }

                        }

                        function setFile(fileSrc) {
                                var image = new Image();
                                image.src = fileSrc;
                                fileArr.push(image);
                        }

                        function setHtml(path, imgsUI) {

//                                var str = '';
                                var str = '<li id="lookImg" class="mui-table-view-cell mui-media mui-col-xs-6">' +
                                        '<div class="mui-content-padded">' +
                                        '<img class="mui-media-object" src="' + path + '" data-preview-src="" data-preview-group="1">' + //《注意》:data-preview-group="1"这里为分组设置,如果界面中有多个div中放不同图片,那么这里要为每个组设置一个不同的值。
                                        '<span class="mui-icon mui-icon-trash deleteBtn"></span>' + //这里是删除图片接钮
                                        '</div>' +
                                        '</li>';
                                $("#imgaes").append(str);
                        }

                        // 监听点击图片大图浏览
                        $(".mui-content").on('tap', '.mui-content-padded img', function() {

                        });
                        // 监听点击大图浏览图片返回
                        $("body").on("tap", "#__MUI_PREVIEWIMAGE", function() {

                        })

                        // 监听图片的删除点击
                        mui("body").on('tap', '.mui-content-padded span', function() {
                                $(this).closest("li").hide(800, function() {
                                        $(this).closest("li").remove();
                                        urls = [];
                                        imagess = [];
                                        loadImgs()
                                });
                        });

                        function loadImgs() {
                                // 获取图片地址列表
                                var images = document.querySelectorAll('.mui-content-padded img');

                                imagess = images;
                                for(var i = 0; i < images.length; i++) {
                                        urls.push(images[i].src);
                                }
                        }

                        //图片上传
                        function uploadImage() {
                                var files = new Array();
                                $(".mui-content-padded").each(function(index) {
                                        var imgurl = $(this).find('img').attr('src');
                                        var image = new Image();
                                        image.src = imgurl;
                                        files.push(image);
                                });
                                if(!files) {
                                        return;
                                }

                                console.log("上传中...");
                                

                                //获取token信息
                                var appToken = localStorage.getItem("appToken");
                                var tokenHeader = localStorage.getItem("tokenHeader");
                                //上传路径
                                var mainUrls = serverip + "api/innerapi/file_upload";
                                var task = plus.uploader.createUpload(mainUrls, {
                                        method: "POST",
                                        headers: {
                                                "Content-Type": "multipart/form-data"
                                        }
                                }, function(t, status) { //上传完成
                                        mui.hideLoading();
                                        if(status == 200) {
                                                var filestr = eval('(' + t.responseText + ')');
                                                var fileData = filestr.data;
                                                fileJson = fileData;
                                                mui.toast('上传成功', {
                                                        duration: 1000,
                                                        type: 'div'
                                                });
                                        } else {
                                                alert("上传失败:" + status);

                                        }
                                }); //将文件集合添加到上传队列中


                        
                                task.addFile(files[0].src, {
                                        key: "file"
                                });
                                //上传时带token信息
                                task.setRequestHeader(tokenHeader, appToken);
                                //添加其他参数
                                task.addData("fileFrom", "信息发布");
                                task.addData("attachType", "1");
                                //开始上传
                                task.start();
                        }
                        // 从相册中选择图片   
                        function galleryImg(imgsUI) {

                                // 从相册中选择图片  
                                plus.gallery.pick(function(e) {

                                        for(var i in e.files) {
                                                var fileSrc = e.files[i];
                                                setFile(fileSrc);
                                                setHtml(fileSrc, imgsUI);
                                        }
                                        urls = [];
                                        imagess = [];
                                        loadImgs();

                                }, function(e) {
                                        if(e.code == 8) { //没有权限 
                                                var btnArray = ["确定"];
                                                mui.confirm('请在【设置】-【项目名称】中打开相机及相册权限!', '相册权限未开', btnArray, function(e) {
                                                        if(e.index == 1) {

                                                        } else {

                                                        }
                                                })
                                        }
                                        console.log("取消选择图片");
                                }, {
                                        filter: "image",
                                        multiple: true,
                                        maximum: 1,
                                        system: false,
                                        onmaxed: function() {
                                                onAlert('最多只能选择1张图片');
                                        }
                                });
                        }
                        
                        

                        //点击拍照及本地相册事件
                        $("#headImage").on("tap", function() {
                                getHeadImage("#images");
                        })

                        //点击附件上传事件
                        $("#uploadImage").on("tap", function() {
                                uploadImage();
                        })
                        
                        //大图浏览
                        mui.previewImage(); 
                </script>

        </body>

</html>

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

菜鸟特工队 发表于 2019-7-24 15:03
谢谢楼主分享
Mr.Lih 发表于 2019-7-24 15:21
下载下来放到PHPstudy上,手机打开点击都没反应,微信和QQ浏览器点击上传都没反应
 楼主| fengrui99 发表于 2019-7-24 15:21
本帖最后由 fengrui99 于 2019-7-24 15:24 编辑
Mr.Lih 发表于 2019-7-24 15:21
下载下来放到PHPstudy上,手机打开点击都没反应,微信和QQ浏览器点击上传都没反应

这个是带plus 需要在hbuilder 中使用真机提调试,点击上传要自己配置下服务器配置哦
realyeah52 发表于 2019-7-24 15:25
确实不错,支持一下
Godbn 发表于 2019-7-24 15:29
支持一下
Mr.Lih 发表于 2019-7-24 16:13
fengrui99 发表于 2019-7-24 15:21
这个是带plus 需要在hbuilder 中使用真机提调试,点击上传要自己配置下服务器配置哦

好的,,明白了
头像被屏蔽
袁煜914 发表于 2019-7-24 16:33
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| fengrui99 发表于 2019-7-24 16:41
袁煜914 发表于 2019-7-24 16:33
好厉害,谢谢楼主啦,嗯呢

网络收集的哈哈
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 11:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表