• tomcat 下 base64图片上传超过2m的解决方案


    方案一:

    tomcat部署下默认post请求提交参数大小为2M左右,超过这个大小,就会传值不成功

    要使post请求参数无大小限制,需要在server.xml上修改,如下:
    <Connector port="8080" protocol="HTTP/1.1" 
    connectionTimeout="2000" 
    redirectPort="8443" 
    URIEncoding="UTF-8"
    maxThreads="3000"
    compression="on" compressableMimeType="text/html,text/xml" 
    maxPostSize="-1"/>
    <Connection port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />

    其中参数maxPostSize="-1"是限制post请求参数的大小,tomcat7.0.63之前的版本设置为0和负数均可以代表不限制。但是7.0.63之后的版本只有设置为负数才代表不限制数据大小

    方案二:

    先用 js 判断 base64 大小,大于2m转为文件再上传。

    getImgSize(str) {
        //获取base64图片大小,返回KB数字
        var str = base64url.replace('data:image/jpeg;base64,', '');//这里根据自己上传图片的格式进行相应修改
        
        var strLength = str.length;
        var fileLength = parseInt(strLength - (strLength / 8) * 2);
    
        // 由字节转换为KB
        var size = "";
        size = (fileLength / 1024).toFixed(2);
        
        
        
        return parseInt(size);
    
      },

    base64:

     data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/4QBYRXhpZxxxxxxxkopKACiiigApaSloA/9k=

    // 上传图片

        function upload(image) {
            var imgFile=dataURLtoFile(image,"img.png");
            var xhr=new XMLHttpRequest();
            var fd=new FormData();
            xhr.open('POST','/springStudy/user/multifiles');
            fd.append("multipartFile",imgFile);
            xhr.send(fd);
            console.log('上传json!')
        }

        //将图片Base64 转成文件

        function dataURLtoFile(dataurl, filename) {
            console.log("转文件")
            var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
                bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
            while(n--){
                u8arr[n] = bstr.charCodeAt(n);
            }
            return new File([u8arr], filename, {type:mime});
        }

  • 相关阅读:
    Java 线程间通信 —— 等待 / 通知机制
    Java 线程基础
    Java 内存模型
    Java 并发机制底层实现 —— volatile 原理、synchronize 锁优化机制、原子操作
    优秀程序员的博客有哪些?
    程序员五一被拉去相亲,结果彻底搞懂了HTTP常用状态码
    【Redis破障之路】三:Redis单线程架构
    【Redis破障之路】一:强大的Redis
    MySQL提升笔记(4)InnoDB存储结构
    MySQL提升笔记(3)日志文件详解
  • 原文地址:https://www.cnblogs.com/interdrp/p/11724025.html
Copyright © 2020-2023  润新知