Base64编码文件转换

【python手动实现】汉字转base64编码(附源码) python实现base64编码 阅读详情

Base64编码中的 64表示的为 0-16 A-Z a-z 和+ / 一共64个字符。

将数据转为二进制数、再将六位作为一组转为十进制数、对应64个字符中进行拼接

1.将文件转为base64编码字符串

public class TestBase64 {

    public static void main(String[] args) throws Exception {
        // 读取文件字节数组
        InputStream in = new FileInputStream("C:\\Users\\Administrator\\Desktop\\扩展系统字典.png");
        byte[] data = new byte[in.available()];
        in.read(data);
        in.close();
        // 对字节数组Base64编码
        BASE64Encoder encoder = new BASE64Encoder();
        // 返回 Base64 编码过的字节数组字符串
        String base64Str = encoder.encode(data);
        System.out.println(base64Str);
    }
}

2.将base64字符串转为文件

  public static void main(String[] args) throws Exception {
        BASE64Decoder decoder = new BASE64Decoder();
        // Base64解码,对字节数组字符串进行Base64解码并生成文件
        byte[] byt = decoder.decodeBuffer(str);
        for (int i = 0, len = byt.length; i < len; ++i) {
            // 调整异常数据
            if (byt[i] < 0) {
                byt[i] += 256;
            }
        }
        InputStream input = new ByteArrayInputStream(byt);
        // 生成指定格式的文件
        OutputStream out = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\扩展系统字典1.png");
        byte[] buff = new byte[1024];
        int len = 0;
        while ((len = input.read(buff)) != -1) {
            out.write(buff, 0, len);
        }
        out.flush();
        out.close();
    }

3.将base64字符串转为MultipartFile文件

3.1 字节转换文件工具类

public class Base64File implements MultipartFile {

    private final byte[] imgContent;
    private final String header;

    private String fileName;

    public Base64File(byte[] imgContent, String header,String fileName) {
        this.imgContent = imgContent;
        this.header = header.split(";")[0];
        this.fileName = fileName;
    }

    @Override
    public String getName() {
        return System.currentTimeMillis() + Math.random() + "." + header.split("/")[1];
    }

    @Override
    public String getOriginalFilename() {
        if (StringUtils.isNoneBlank(fileName)){
            return fileName;
        }
        return System.currentTimeMillis() + (int) Math.random() * 10000 + "." + header.split("/")[1];
    }

    @Override
    public String getContentType() {
        return header.split(":")[1];
    }

    @Override
    public boolean isEmpty() {
        return imgContent == null || imgContent.length == 0;
    }

    @Override
    public long getSize() {
        return imgContent.length;
    }

    @Override
    public byte[] getBytes() throws IOException {
        return imgContent;
    }

    @Override
    public InputStream getInputStream() throws IOException {
        return new ByteArrayInputStream(imgContent);
    }

    @Override
    public void transferTo(File dest) throws IOException, IllegalStateException {
        new FileOutputStream(dest).write(imgContent);
    }

    public String getFileName() {
        return fileName;
    }
    public void setFileName(String fileName) {
        this.fileName = fileName;
    }
    public static MultipartFile base64ToMultipart(String base64,String fileName) {
        try {
            String[] baseStrs = base64.split(",");

            BASE64Decoder decoder = new BASE64Decoder();
            byte[] b = new byte[0];
            b = decoder.decodeBuffer(baseStrs[1]);

            for (int i = 0; i < b.length; ++i) {
                if (b[i] < 0) {
                    b[i] += 256;
                }
            }
            return new Base64File(b, baseStrs[0],fileName);
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }

}

3.2 调用文件转换

            MultipartFile file = Base64File.base64ToMultipart((String)datasMap.get("reportFile"),"自定义文件名");

 

 

C语言实现Base64编解码(加密和解密) Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3 * 8 = 4 * 6 = 24),然后把6Bit再添加两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。Base64的编码转换表。字符串 - hello。 阅读详情

相关推荐

前端base64转换工具(base64转文件,base64转图片)

前端base64转换工具

liuyongheng1991的博客 3854

Base64在线转换工具(详解)

1.项目背景: 在计算机中一个字节共有256种,即ascii码表,而ascii码的128~255之间的值是不可见字符,对于一些只支持可见字符的协议,比如邮件传输协议(SMTP)只支持可见的ASCII字符的传递,如果要传输二进制文件,比如:图片、视 频是无法实现的,因此就有了base64编码格式,Base64编码格式对于所有二进制格式的数据,都可以转化为可显 示的字符。base64的应用场景非常多,比如: 在网络上交换数据时,比如说从A地传递到B地,往往要经过多个路由设备,由于不同的设备对字符的处理方

ambiguous__的博客 5万+

DrissionPage无头模式破盾记:实战绕过CloudFlare 5秒验证

本文详细介绍了如何使用DrissionPage无头模式绕过CloudFlare 5秒盾验证,提升爬虫效率。通过关键参数配置、服务器环境问题处理及高级绕过技巧,如动态UA轮换和鼠标移动模拟,帮助开发者有效应对反爬机制。实战案例展示了如何结合最新Chrome UA和参数设置实现稳定数据采集。

weixin_29327525的博客 491

在线文件base64转换工具

在线Base64转文件、文件转Base64 - BTool在线工具软件,为开发者提供方便。此工具可将任意文件转换为base64表现形式,也可将base64字符串转换为文件下载。在线将字符串、文件或图像转换为它的base64表示形式。

yunmoon的博客 5528

国产操作系统替换方案:3个避坑指南

坑核心误区避坑核心原则关键动作坑一:选型只看信创信创目录=唯一标准兼容性优先,信创是约束三维评估(兼容性+信创+生态),分场景选型坑二:迁移只管能跑功能能跑=迁移成功性能确认+运维回归适配-压测-回归三阶段,基线对比坑三:不防二次迁移解决停服=完成任务一步到位,两级兼容信创路线优先,双轨制发布,终态规划。

weixin_43524706的博客 299

从解压到编译:手把手带你用TeXstudio搞定第一篇ACM LaTeX论文

本文详细指导如何使用TeXstudio从解压ACM LaTeX模板到成功编译第一篇学术论文的全过程。涵盖环境准备、模板配置、TeXstudio设置及常见问题排查,特别针对ACM会议论文格式要求,帮助学术新人快速掌握LaTeX写作技巧。

weixin_30655569的博客 255

将文件转换为Base64编码

在JavaScript中,将文件转换为Base64编码可以通过FileReader对象实现。

前端技术-开发 1397

姿态传感器/陀螺仪之LSM6DS3TR-C应用原理图设计

LSM6DS3TR-C是一款由意法半导体(STMicroelectronics)推出的高性能、低功耗的惯性测量单元(IMU),集成了3轴加速度计和3轴陀螺仪,用于测量加速度、角速度以及设备的姿态和运动。

corlin6688的博客 872

PDF文件转换为Base64编码的实现与解析

Base64 编码是一种基于 64 个可打印字符来表示二进制数据的编码方式。它将每 3 个字节(24 位)的数据转换为 4 个 Base64 字符(每个字符 6 位),从而实现二进制数据到文本数据的转换。Base64 编码广泛应用于电子邮件附件、URL 编码、数据库存储等领域。pdf_path(PDF文件路径)和(输出 Base64 编码文件路径)。通过上述核心代码的解析,我们可以了解到如何将 PDF 文件转换为 Base64 编码,并保存到文本文件中。完整代码请前往链接t=N7T8。

qq_45519030的博客 5218

Python爬虫教程:抓取社交媒体内容(以Facebook和Instagram为例)

为什么抓取社交媒体内容?品牌分析与监测:通过抓取品牌、产品或服务相关的社交媒体数据,可以获得公众对其的评价,识别市场趋势,制定营销策略。情感分析:分析用户在社交平台上的情感倾向,如对某事件、产品、服务的正面或负面情绪。舆情监控:通过抓取大量社交媒体内容,监测公众对热点事件的反应,发现潜在的社会问题。用户行为分析社交媒体的数据类型:帖子和内容:包括用户发布的文本、图片、视频等。用户互动用户信息:包括用户名、粉丝数、关注数等社交信息。社交媒体的反爬虫机制:API限制。

2201_76125261的博客 1340

GEE高阶应用——如何绘制2000-2022年土地利用变化轨迹时序图

土地利用变化是指在一定时间范围内,土地利用类型和结构发生的变化。时序变化是指这种变化随时间的推移而发生的序列变化。土地利用变化轨迹的时序变化具体介绍如下:首先,土地利用变化轨迹的时序变化体现在土地利用类型的演变上。在过去的几十年里,随着人口的增加、经济的发展和城市化的推进,土地利用类型发生了显著的变化。传统的农田逐渐减少,而城市、工业、交通、居住等用地的面积不断扩大。同时,随着环境保护意识的提高,生态保护用地、森林、湿地等绿色用地的面积也在增加。

此星光明博客 1114

PDF文件转换为Base64编码

在线base64转pdf:格式转换 包名: import sun.misc.BASE64Encoder; import java.io.*; 方法: /** * 将pdf文件转换为Base64编码 * @param file pdf文件 * @return */ public static String PdfToBase64(File file) { BASE64Encoder encoder = new BASE64Encoder();

槟榔与酒的博客 6133

Codex 接入自定义大模型终极教程:插件解锁、会话管理、国产模型一键搞定

🚀 Codex 默认只能使用 OpenAI 官方模型?这篇文章带你从零接入 DeepSeek、通义千问、GLM 等国产大模型,并彻底解锁插件、会话删除、多模型切换等隐藏功能。配置原理、常见坑点、傻瓜式增强工具分享,小白也能轻松上手!🔥

XiaoqiangClub的博客 3156

使用Go语言将PDF文件转换为Base64编码

本文介绍了如何使用 Go 语言将 PDF 文件转换为 Base64 编码,并保存到文件中。

qq_45519030的博客 1031

ER图从入门到精通:数据库建模全攻略

本文为数据库建模领域的 ER 图全面指南,系统解析从基础概念到实战应用的核心要点。首先介绍 ER 图的定义、三大组成元素(实体、属性、关系)及三种基础关系类型(一对一、一对多、多对多);其次详解绘制流程,涵盖工具选择(如 Visio、PowerDesigner)、需求分析方法及实体 - 属性 - 关系的分步建模技巧;进一步探讨弱实体、复合属性等高级概念,结合范式理论讲解模型优化策略;针对实体属性混淆、关系类型误判等常见问题提供解决方案;最后通过电商系统、图书馆管理系统等实际案例展示 ER 图设计全流程。

邓邓子的博客 4213

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jpg图片转base64 python,python将图片文件转换成base64编码的方法

本文实例讲述了python将图片文件转换成base64编码的方法。分享给大家供大家参考。具体实现方法如下:import base64f=open(r'c:\jb51.gif','rb') #二进制方式打开图文件ls_f=base64.b64encode(f.read()) #读取文件内容,转换为base64编码f.close()调用方法如下:代码如下:img src=”R0lGODlh1wBOAP...

weixin_39871162的博客 728

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

将file文件转换为Base64,将base64编码字符串解码成file

package com.byttersoft.hibernate.erp.cd_jianguoqc.testClient.test; /** * @author xuhw * @Title * @Description * @date 2021/12/20 16:17 */ import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import

singheart的博客 5093

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

将图片和文件转换成base64字节码和base64编码的字符串保存为文件(路径为Windows moible)

///         /// 对任意类型的文件进行base64加码         ///         /// 文件的路径和文件名         /// 对文件进行base64编码后的字符串         public static string FileToString(string filePath)         {             if (!string.IsN

3876

图片文件转换成二进制流并进行base64编码

/** * 图片转换为base64格式 * * @param bitmap 位图 * @return */ @TargetApi(Build.VERSION_CODES.O) public static String bitmapToBase64(Bitmap bitmap) { int size = bitmap...

songzi1228的博客 3625

图片文件转换为base64编码

用c#对文件进行base64编解码似乎更方便,因为有现成的方法可以调用

u011423435的专栏 1628

通过将图片文件转换成Base64编码实现ajax提交图片

通过将图片文件转换成Base64编码实现ajax提交图片

pbyang_love的博客 1236

python查看图片lux值_python 查询手册python将图片文件转换成base64编码的方法

本文实例讲述了python将图片文件转换成base64编码的方法。分享给大家供大家参考。具体实现方法如下:W WW.002pc .COM从python 查询手册python将图片文件转换成base64编码的方法分析来看,对python 查询手册python将图片文件转换成base64编码的方法的结果。import base64f=open(r'c:\jb51.gif','rb') #二进制方式打开...

weixin_35275162的博客 161

Java中将文件转换为Base64编码的字节码

在Java中,将文件转换为Base64编码的字节码通常涉及以下步骤:读取文件内容到字节数组。 使用java.util.Base64类对字节数组进行编码。

★【World Of Moshow 郑锴】★ 2959

python将图片转换成二进制文本_python将图片文件转换成base64编码的方法

本文实例讲述了python将图片文件转换成base64编码的方法。分享给大家供大家参考。具体实现方法如下:import base64f=open(r'c:\jb51.gif','rb') #二进制方式打开图文件ls_f=base64.b64encode(f.read()) #读取文件内容,转换为base64编码f.close()调用方法如下:代码如下:img src=”R0lGODlh1wBOAP...

weixin_39663605的博客 1073

Base64编码 含换行符 BASE64Encoder Base64 commons-codec Java读取照片文件转换为Base64编码 Base64转文件

jdk7 jdk8 commons-codec 示例:Java读取照片文件转换为Base64编码

tanzongbiao的专栏 963

Flutter for OpenHarmony 文件转换助手App实战 - Base64编码

Base64编码工具展示了如何在Flutter应用中实现数据转换功能。通过支持编码和解码两种模式,我们为用户提供了一个完整的Base64转换解决方案。做到这里其实就已经能用了。输入清理trim()+ 必要的空白处理,减少“明明是对的但解不开”的挫败感。模式切换:编码/解码一键切换,别让用户来回删内容。结果去向:短内容复制,长内容保存到文件,工具会更像“项目里真的会有人用”。欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.youkuaiyun.com。

2601_94994779的博客 1154
上一篇: 记录一次失败的Mybatis框架源码运行 导入idea
下一篇: Springboot 项目打包分离lib包与配置文件
阿拉灯神丁-Java
博客等级 码龄7年 6粉丝 20原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值