• 图片采用base64压缩,可以以字符串的形式传送base64给服务端转存为图片


    (function () {
        var coverImage = document.querySelector('<div id="coverImage">file</div>');
        //图片压缩
        coverImage.onchange = function () {
            lrz(this.files[0], { 640}, function (results) {
                
                // 你需要的数据都在这里,可以以字符串的形式传送base64给服务端转存为图片。
                var base64 = results.base64;
                function base64UrlToBlob(base64){
                    var bytes=window.atob(base64.split(',')[1]);        //去掉url的头,并转换为byte
                    //处理异常,将ascii码小于0的转换为大于0
                    var ab = new ArrayBuffer(bytes.length);
                    var ia = new Uint8Array(ab);
                    for (var i = 0; i < bytes.length; i++) {
                        ia[i] = bytes.charCodeAt(i);
                    }
                    return new Blob( [ab] , {type : 'image/jpg'});    //return Blob对象
                }
                var formData = new FormData($("#toPic")[1]);
                var blob = base64UrlToBlob(base64);
                console.log(blob);
                formData.append("coverImage",blob);
                $.ajax({
                    url: "xxx",
                    type: "POST",
                    data: formData,
                    dataType: "json",
                    contentType:false,
                    processData: false,         
                    success: function (json) {
                        console.log(json);
                    },
                });
                setTimeout(function () {
                    demo_report('预压的图片', base64, base64.length * 0.5);
                }, 100);
                
            });
        };
    })();
     (function () {
        var coverImage = document.querySelector('<div id="coverImage">file</div>');
        //图片压缩
        coverImage.onchange = function () {
            lrz(this.files[0], { 640}, function (results) {
            
                // 你需要的数据都在这里,可以以字符串的形式传送base64给服务端转存为图片。
                var base64 = results.base64;
                function base64UrlToBlob(base64){
                    var bytes=window.atob(base64.split(',')[1]);        //去掉url的头,并转换为byte
                    //处理异常,将ascii码小于0的转换为大于0
                    var ab = new ArrayBuffer(bytes.length);
                    var ia = new Uint8Array(ab);
                    for (var i = 0; i < bytes.length; i++) {
                        ia[i] = bytes.charCodeAt(i);
                    }
                    return new Blob( [ab] , {type : 'image/jpg'});    //return Blob对象
                }
                var formData = new FormData($("#toPic")[1]);
                var blob = base64UrlToBlob(base64);
                console.log(blob);
                formData.append("coverImage",blob);
                $.ajax({
                    url: "xxx",
                    type: "POST",
                    data: formData,
                    dataType: "json",
                    contentType:false,
                    processData: false,         
                    success: function (json) {
                        console.log(json);
                    },
                });
                setTimeout(function () {
                    demo_report('预压的图片', base64, base64.length * 0.5);
                }, 100);
                
            });
        };
    })();

    作者:freddyhuang
    出处:https://www.cnblogs.com/freddyhuang
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    Mac电脑,Andorid studio 配置 Flutter
    java.lang.RuntimeException: com.intellij.ide.plugins.PluginManager
    #Java Web累积#关于MUI的上滑和下拉加载
    #iOS问题记录#WKWebView 闪退异常
    #iOS问题记录#UITableView加载后直接滑动倒最底部
    #Java Web累积#JS动态加载所有同name的select的option
    #iOS问题记录# UIWebView滑动到底部
    #Java Web累积#表格<table>中隐藏列做备用数据
    #iOS问题记录# UITextview富文本链接,禁止长按事件
    Day 1:自定义tableview cell xib版
  • 原文地址:https://www.cnblogs.com/freddyhuang/p/5988781.html
Copyright © 2020-2023  润新知