• Base64编码转图片


    今天在群里,有人问 富文本的图片怎么上传。




    类似于:

    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACUAAAAjCAIAAACcpVRJAAAAB3RJT…eLRjPLt95OKtC53ocA6L1f5yLutp53UXU0/1eM/wtyp3n/BJW6iQ7mPHyQAAAAAElFTkSuQmCC">

     

           想了下, 这里的base64后面的那一串数据就是 图片被base64编码了而已。所以只需要把这串数据上传到服务器就可以。服务器接收到后,判断文件名,图片格式,图片内容是字符串。把这个字符串用base64解码成字节数组, 再用FileOutputStream输出成对应格式的图片就可以了,我这张图片是png,那么就保存成png。

               网上搜了下,有其它插件,但是应该也是这样的原理。

    import java.io.FileOutputStream;
    import java.io.IOException;
    
    import com.mysql.jdbc.util.Base64Decoder;
    
    public class Base64Test {
    	@SuppressWarnings("static-access")
    	public static void main(String[] args) throws IOException {
    		Base64Decoder decoder=new Base64Decoder();
                    //图片被base64编码的字符串
    		String s="iVBORw0KGgoAAAANSUhEUgAAACUAAAAjCAIAAACcpVRJAAAAB3RJTUUH4AUbBQc49OACfgAABSpJREFUeJztlluMlVcVx///tfd35nznnAGGGWAyQgM0JamlBoomgvGhJfrggww06QudakNIGltTq5im0qYvlQd9MUZNfPHCgMRw6YQHiYkxPhQnppQmFhPEtrS0JS3iMJyZObf97bV8+M5wKYdzxkvwxfX4rfXt37ruvVitVnEHRe4k7P+8/w3PYnZ7VeyivVV8D72qmdJ5AHb5EmambaYKU4pDuWKLB2RwOQBoBAXkf8ZThQgh8dRJeePV8OZZ+/CDAcucSFS9AoeRu/z6DfzkRvnUZwDArCeS3edPP3gnHjugpyeXis5m2orKJAEJMwuhz0nZyxS82/yg7HhMlg71jK8bL56azA7+aPHVqashwnmYwgxm878SJMUhtIre1YeGk6dfkFV3d4+yE88MZHxtMv74u4UsNCkwzb+T13AkzTB/LpnSGmnF7/2+rFzbJb5b+lMVJC5esF/9pBBDk4RGAwUG8lpsgKkBZmIGEKp1Y1qfCz98CdVpqOIG0648M8uy5uGfV6YuN0DEaJSywEr9YibStjfAkfBey5WSQEmLcU5RvnQxO7YfIgvjZRmcszOvp3/986yRZnC+JMgGh/1Tz/PhsT4oSJKONOfc7j3Jk3uz5SNlJ+K8EMGQvfZHffdNiEC1F885y7L4pz+kjVoGA+BhsX+JfvXrsn6jHx1rjY4VCZqZCHfv8Vsekvs3xW2PBtBMzaxJDsxd1dOTHYO7hUdiegoX3p6NKmYAIii1Wb5zNk+13z4WRndKkrgnnk22PIQsA8BL73kzUADQEAx29ozNVCEdLq+Pz7tNT/HSxWAwGFRN0AiaHvllK6ofHQPgv/SIff6LHBoGAO+zifFk4mATAjOoQjAXFOfP6d8/dP2LevMwe3XAsn94jxCulb2mSF8ez0j3hVGUKuwbBsBmI/z2WGHiQC2C1HZ6YCShkdaheLfkEwAFYHter88aIl04st9qcwDyRtCP3u87+otAd1PaFCZSCE1rNhbGE0SNNzlHCpCB/snnOLQCQF4YLv9Ec8dXEos3taEAqi1fYKFvYbxS/zQTy0I7PhJm6hx3f8t/9kEACC17928ILRRTv21na9vOosMNrUGBWVpiX3FBPC4Z5MjKPicQgQjJxDn/+NPJ57bm3RhPHC7t+2Y8cTh3yI+OxW07U84HLa5SSLhmHZYN9+aZKgeX8b4NZckfMxOYpWWrLAYA78PEuD+6/8pcwx/dHybG8ysbQ8NBNa94hImarF3HYtpx3m/uz/zBu+/T1d//JgmtYFRKsTYTDv1UoXrhrcLEgYZRyIah+PJ4S6MbWW3Hf504FxUQSYErpUWFjVs6BocO74MqVFs/+0Hx5O9qMEY1SipoivcxZBSb95oiCawVteikppZnsyRobP1yMva13PUe+QQAEt4nj+yqD60oAXCOsAZoWQg3wPLkt0CQjfbVwiKtdve9fvujXZ7ATjyASwaSb7zYSCspDSLMv88XqW0IXK8QWSSaA4OFXc+wsqhd1wXxct/NZNVa/53v1QeHy4TLVyZxdu0g0kiIY5IUTMuC5j3r/bf3ceSu271Ebcd67C9Tl/X4IT31ytJ6tR6tHtVIirOYCZB6SciZRYPYtMXveAzlSs+VqStv/ufs3Bm8cdrO/SWeP8dmvV9QpZe0hJWruW69e2CzrLnnRvt/P772re8cAJup2uWPkAVr1lmqMClgYIiVfgAWM4pbyP7Zi5eLRjPLt95OKtC53ocA6L1f5yLutp53UXU0/1eM/wtyp3n/BJW6iQ7mPHyQAAAAAElFTkSuQmCC";
    		byte [] b=decoder.decode(s.getBytes(), 0, s.getBytes().length);
    		FileOutputStream out=new FileOutputStream("E:\a.png");
    		out.write(b);
    		out.close();
    	}
    }
    


    效果




  • 相关阅读:
    简单工厂模式实例
    浅析面向对象和面向过程
    equals与“==”的区别
    IIS挂起网站配置文件地址
    先安装win7时IIS的安装
    验证码的使用
    c#引用命名空间的作用
    ADO与ADO.NET的区别
    常用的数据库访问方式
    Exercise 11: Asking Questions
  • 原文地址:https://www.cnblogs.com/thewindkee/p/12873271.html
Copyright © 2020-2023  润新知