zoukankan      html  css  js  c++  java
  • 微信网页IOS上传图片旋转解决方案

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <title>分享</title>
        <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
        <link rel="stylesheet" href="../../Resource/css/mui.min.css">
        <script src="../../Resource/js/mui.min.js"></script>
        <link href="../../Resource/layer_mobile/need/layer.css" rel="stylesheet" />
        <script src="../../Resource/layer_mobile/layer.js"></script>
        <script src="../../Resource/js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../Resource/js/exif.js"></script>
        <script src="http://res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>
        <script src="../../Resource/weixin/hyx_base.js"></script>
        <script src="../../Resource/weixin/WeiXinShare.js"></script>
        <style>
            body {
                background: #F5F5F5;
            }
    
            .mui-content {
                background: #f5f5f5;
            }
    
            .mui-input-row {
                margin-top: 10px;
                background: #fff;
                padding: 10px;
            }
    
            textarea {
                border: none;
            }
    
            .chuan {
                width: 50px;
                height: 50px;
            }
    
            .del {
                position: relative;
                top: -39px;
                left: -14px;
                width: 15px;
            }
    
            footer {
                position: fixed;
                bottom: 0px;
                color: #fff;
                background: #01BF3A;
                width: 100%;
                padding: 12px 0px;
                text-align: center;
                font-size: 17px;
                border-top: 1px solid #eee;
            }
        </style>
    </head>
    
    <body>
    
        <div class="mui-input-row">
            <textarea id="textarea" rows="5" placeholder="一起聊聊生活把"></textarea>
        </div>
        <div class="mui-input-row" id="ImgList">
            <img class="chuan" id="imgUpload" src="../../Resource/img/shangcaun.png" />
            <input type="file" id="fileToUpload" name="upfile" style=" display:none;" />
        </div>
        <footer id="Add">发送</footer>
    
        <script type="text/javascript">
            var browser = {
                versions: function () {
                    var a = navigator.userAgent, b = navigator.appVersion;
                    return {
                        trident: a.indexOf("Trident") > -1, presto: a.indexOf("Presto") > -1,
                        webKit: a.indexOf("AppleWebKit") > -1, gecko: a.indexOf("Gecko") > -1 && a.indexOf("KHTML") == -1,
                        mobile: !!a.match(/AppleWebKit.*Mobile.*/), ios: !!a.match(/(i[^;]+;( U;)? CPU.+Mac OS X/),
                        android: a.indexOf("Android") > -1 || a.indexOf("Linux") > -1, iPhone: a.indexOf("iPhone") > -1,
                        iPad: a.indexOf("iPad") > -1, webApp: a.indexOf("Safari") == -1
                    }
                }(),
                language: (navigator.browserLanguage || navigator.language).toLowerCase()
            };
    
    
            var openid = getCookie("openid");
            var fileUrl = "";
            $(function () {
                initJSAPI();
                if (openid == undefined || openid == "" || openid == null || openid == "null") {
                    var code = getQueryString("code");
                    if (code == null) {
                        JumpToOauth();
                    } else {
                        initOpenid(code);
                    }
                } else {
                    GetUserInfo(openid);
    
                }
    
            });
            function initOpenid(code) {
                $.ajax({
                    type: "POST",
                    timeout: 80000,
                    url: "../../GetJsApi/GetOpenid",
                    dataType: "text",
                    data: { "code": code },
                    beforeSend: function (XMLHttpRequest) {
    
                    },
                    success: function (msg) {
                        //获取相应的值,并存放到cookie中去
                        if (msg == undefined || msg.length == 0) {
                        } else {
                            openid = msg;
                            setCookie("openid", msg, 1);
                            GetUserInfo(openid);
                        }
                    },
                    complete: function (XMLHttpRequest, textStatus) {
                        if (textStatus == 'timeout') {
                            //超时,status还有success,error等值的情况
                            alert("请求超时,请返回重试");
                        }
                    },
                    error: function (err) {
                        console.log("数据加载失败");
                    }
                });
            }
            //获取微信用户是否关注公众号
            function GetUserInfo(openid) {
                $.ajax({
                    type: "POST",
                    timeout: 80000,
                    url: "../../GetJsApi/WeChatIsFollow",
                    dataType: "json",
                    data: { "openid": openid },
                    beforeSend: function (XMLHttpRequest) {
    
                    },
                    success: function (msg) {
                        if (msg[0].STATUS != "Y") {
                            ShowQrcode();
                        }
                    },
                    complete: function (XMLHttpRequest, textStatus) {
                        if (textStatus == 'timeout') {
                            //超时,status还有success,error等值的情况
                            layerPrompt("请求超时,请返回重试");
                        }
                    },
                    error: function (err) {
                        layerPrompt("数据加载失败");
                    }
                });
            }
    
    
            //上传图片
            $("#imgUpload").click(function () {
                $("#fileToUpload").click();
    
            })
            window.setInterval(function () {
                console.log($("#fileToUpload").val());
                if (fileUrl != $("#fileToUpload").val()) {
                    fileUrl = $("#fileToUpload").val();
                    if (fileUrl != "" && fileUrl != undefined) {
                        layer.open({
                            type: 2,
                            shadeClose: false,
                            content: '正在上传...'
                        });
                        uploadBtnClick();
                    }
                }
            }, 1000)
    
            /********************************
            上传图片
            */
            function uploadBtnClick() {
                var scope = this;
                // change pic to base64
                if (window.File && window.FileReader && window.FileList && window.Blob) {
                    var filefield = document.getElementById('fileToUpload'),
                        file = filefield.files[0];
                    //IOS
                    if (browser.versions.ios) {
                        //获取图片的相关信息
                        EXIF.getData(file, function () {
                            EXIF.pretty(this);
                            var Orientation = EXIF.getTag(this, 'Orientation');
                            processfile(file, uploadCompressFile, scope, Orientation);
                            alert(Orientation);
                        });
                        //Android
                    } else if (browser.versions.android) {
                        processfile(file, uploadCompressFile, scope, 1);
                    }
                } else {
                    alert("此浏览器不完全支持上载图片");
                }
            }
            function processfile(file, uploadCompressFile, scope, Orientation) {
                var reader = new FileReader();
                reader.onload = function (event) {
                    var blob = new Blob([event.target.result]);
                    window.URL = window.URL || window.webkitURL;
                    var blobURL = window.URL.createObjectURL(blob);
    
                    var image = new Image();
                    image.src = blobURL;
                    image.onload = function () {
                        var resized = resizeMe(image, Orientation);
                        newImg = resized;
                        uploadCompressFile.apply(scope);
                    }
                };
                reader.readAsArrayBuffer(file);
            }
            //压缩图片
            function resizeMe(img, Orientation) {
                //压缩的大小
                var max_width = 500;
                var max_height = 375;
                var iSxz = true;
                var canvas = document.createElement('canvas');
                var width = img.width;
                var height = img.height;
                if (width > height) {
                    if (width > max_width) {
                        height = Math.round(height *= max_width / width);
                        width = max_width;
                    }
                }
                else {
                    if (height > max_height) {
                        width = Math.round(width *= max_height / height);
                        height = max_height;
                    }
                }
                //跳转图片大小
                if (Orientation == 6) {
                    canvas.width = height;
                    canvas.height = width;
                } else {
                    canvas.width = width;
                    canvas.height = height;
                }
                var ctx = canvas.getContext("2d");
                //旋转图片
                if (Orientation == 6) {
                    ctx.save();
                    ctx.translate(height / 2, width / 2);
                    ctx.rotate(90 * Math.PI / 180.0);
                    ctx.drawImage(img, -width / 2, -height / 2, width, height);
                } else {
                    ctx.drawImage(img, 0, 0, width, height);
                }
                //压缩率(返回base64编码)
                return canvas.toDataURL("image/png", 0.1);
            }
    
            //上传图片
            function uploadCompressFile() {
                $.ajax({
                    type: "post",
                    timeout: 80000,
                    async: false,
                    url: "../../FileUpload/FileImg",
                    dataType: "text",
                    data: { "BaseImg": newImg },
                    beforeSend: function (XMLHttpRequest) {
                    },
                    success: function (msg) {
                        if (msg != "") {
    
                            var Image = "http://www.huiyexing.cn" + msg; //"http://hz.huiyexing.cn" +
    
                            layer.closeAll();
                            $("#imgUpload").before("<img class='chuan NewImg' src='" + Image + "'  /><img class='del' src='../../Resource/img/deldeldel.png'  />")
                            var Imglist = $("#ImgList").find(".NewImg");
                            if (Imglist.length == 9) {
                                $("#imgUpload").hide();
                            } else {
                                $("#imgUpload").show();
                            }
                            $(".del").click(function () {
                                $(this).prev().remove();
                                $(this).remove();
                                $("#imgUpload").show();
                            });
                            $("#fileToUpload").val("");
                        }
                    },
                    complete: function (XMLHttpRequest, textStatus) {
                        if (textStatus == 'timeout') {
                            //超时,status还有success,error等值的情况
                            layerPrompt("请求超时,请返回重试");
                        }
                    },
                    error: function (err) {
                        layerPrompt("数据加载失败");
                    }
                });
            }
    
    
            //Add
            function AddCircle() {
                var Content = escape($("#textarea").val());
                if (Content == "") {
                    layerPrompt("请输入");
                    return;
                }
                var imgListUrl = "";
                var imgList = $("#ImgList").find(".NewImg");
                $(imgList).each(function () {
                    imgListUrl += $(this).attr("src") + ",";
                })
                if (imgListUrl != "") {
                    imgListUrl = imgListUrl.substring(0, imgListUrl.length - 1);
                }
                $.ajax({
                    type: "POST",
                    timeout: 80000,
                    url: "../../Circle/AddCircle",
                    dataType: "text",
                    data: { "openid": openid, "Content": Content, "ContentImges": imgListUrl },
                    beforeSend: function (XMLHttpRequest) {
    
                    },
                    success: function (msg) {
                        if (msg == "true") {
                            window.location.href = "Index.html";
                        } else {
                            layerPrompt("操作失败");
                        }
                    },
                    complete: function (XMLHttpRequest, textStatus) {
                        if (textStatus == 'timeout') {
                            //超时,status还有success,error等值的情况
                            layerPrompt("请求超时,请返回重试");
                        }
                    },
                    error: function (err) {
                        layerPrompt("数据加载失败");
                    }
                });
            }
            $("#Add").click(function () {
                AddCircle();
            })
        </script>
    </body>
    
    </html>
  • 相关阅读:
    android 内存泄漏分析
    sublime text3
    Bind Service 不会在后台无限期的一直运行
    uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型?
    #include < >与#include “ ”
    什么是库?
    gcc编译器
    如何写C语言程序
    ubuntu登陆root用户验证失败
    nginx location匹配顺序及CI框架的nginx配置
  • 原文地址:https://www.cnblogs.com/Gold-fangjin/p/7028884.html
Copyright © 2011-2022 走看看