(JDK11)根据文件的Url输出该文件的Base64

由于和外部对接的时候需求要把一个文件的url输出为base64码,我这里参考了博客:
JAVA–根据Url下载文件数据(输出Base64)
但由于我用的是JDK11的,已经没有rt.jar的包了,而该博客里使用的是jdk8的BASE64Encoder,所以这个时候可以把BASE64Encoder换成org.apache.commons.codec.binary.Base64,我这里完整的代码如下:


/*** 把url格式的文件转为base64码* @author FanHuiFang* @version 1.0* @date 2024年04月18日 10:26*/import com.google.common.base.Strings;
import org.apache.commons.codec.binary.Base64;import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;public class Base64Utils {/*** 根据文件url获取文件并转换为base64编码** @param url 文件地址* @return 文件base64编码*/public static String netSourceToBase64(String url){try{URL uploadUrl = new URL(url);HttpURLConnection conn = (HttpURLConnection) uploadUrl.openConnection();conn.setConnectTimeout(10 * 1000);byte[] bytes = toByteArray(conn.getInputStream());//对字节数组Base64编码return Base64.encodeBase64String(bytes);} catch (Exception ex){System.out.println("文件下载出错:"+ex.getMessage()+"\n");return "";}}/*** inputStream转化为byte[]数组* @param input InputStream 输入流* @return byte[] 文件二进制字节数组* @throws IOException*/public static byte[] toByteArray(InputStream input) throws IOException {ByteArrayOutputStream output = new ByteArrayOutputStream();byte[] buffer = new byte[4096];int len;while (-1 != (len = input.read(buffer))) {output.write(buffer, 0, len);}return output.toByteArray();}/*** 把base64转化文件流** @param base64 base64* @return byte[] 文件流*/public static byte[] decryptByBase64(String base64) {if (Strings.isNullOrEmpty(base64)) {return null;}return Base64.decodeBase64(base64.substring(base64.indexOf(",") + 1));}
}

---------------------知道的越多,不知道的越多----------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/825265.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 之 【类与对象】从入门到精通一条龙服务 最终篇(static成员、友元、匿名对象。。。)

💴到用时方恨早,白首方悔挣的少 车到山前没有路,悬崖勒马勒不住 一、再谈构造函数 1.构造函数体赋值 2.初始化列表 3.explicit关键字 二、Static成员 1.概念 2.特性 三、友元 1.友元函数 2.友元类 四、内部类 五、匿名对象 六、…

BOM管理软件

BOM(Bill of Materials,物料清单)管理软件是企业进行产品设计、物料采购、生产计划、成本核算等环节不可或缺的工具。这类软件主要功能包括创建和维护物料清单、管理物料信息、支持多层次的BOM结构、进行物料需求计算、生成采购计划、与ERP/M…

js: UrlDecode解码、UUID和GUID、阿拉伯数字转为中文数字

UrlDecode解码: UrlDecode 是一个 JavaScript 函数,用于将经过 URL 编码的字符串转换为普通字符串。 URL 编码是将特殊字符转换为它们的百分比编码表示形式的过程。这些特殊字符包括空格、斜线、井号(#)等。UrlDecode 函数将这些…

面试stm32基础知识

1.ISP 第一步进入bootloader模式:先置BOOT0为高,BOOT1为低,再复位单片机进入bootloader模式,之后通过上位机下载程序; 第二步配置启动代码的地方:代码下载完毕后,置BOOT0为低,BOOT1…

lambda捕获列表

lambda是C11新特性之一,优点是: 1.可以直接匿名定义目标函数或函数对象,不需要额外写一个函数 2.lambda是一个匿名的内联函数 捕获列表 总结:【】为值捕获,只读 【&】为引用捕获,可读可写

Day104:漏洞发现-漏扫项目篇武装BURP浏览器插件信息收集分析辅助遥遥领先

目录 插件类-武装BurpSuite-漏洞检测&分析辅助 1、如何加载插件: 2、漏洞检测类: Fiora TsojanScan RouteVulScan APIKit 3、分析辅助类: 插件类-武装谷歌浏览器-信息收集&情报辅助 HackBar Heimdallr Wappalyzer FindS…

Linux进阶篇:性能监控工具:socket 统计信息

Linux性能监控工具:socket 统计信息 1 ss命令介绍 ss 是 Socket Statistics 的缩写。ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netsta…

ArtCoder——通过风格转换生成多元化艺术风格二维码

简介 ArtCoder能够从原始图像(内容)、目标图像(风格)以及想要嵌入的信息中,生成具有艺术风格的二维码。这一过程类似于通常的图像风格转换,但特别针对二维码的特点进行了优化和调整。 通过这种方法&#…

图像生成模型浅析(Stable Diffusion、DALL-E、Imagen)

目录 前言1. 速览图像生成模型1.1 VAE1.2 Flow-based Model1.3 Diffusion Model1.4 GAN1.5 对比速览 2. Diffusion Model3. Stable Diffusion3.1 Text Encoder3.2 Decoder3.3 Generation Model 总结参考 前言 简单学习下图像生成模型的相关知识🤗 以下内容来自于李宏…

链表传一级指针以及leetcode做题有感

上个文章说要传二级指针,经过一段时间的学习之后才知道可以传一级指针: 之所以要传二级指针,是要改变一级指针的值,也就是把头节点的指针改变,如图: 从左边到右边,头指针 一级指针plist 的值发…

深入理解Transformer技术原理 | 得物技术

谷歌在2017年发布Transformer架构的论文时,论文的标题是:Attention Is All You Need。重点说明了这个架构是基于注意力机制的。 一、什么是注意力机制 在深入了解Transformer的架构原理之前,我们首先要了解下,什么是注意力机制。…

vulfocus靶场redis 未授权访问漏洞之CNVD-2015-07557

目标系统的权限不够redis用户无法写计划任务和公钥,而且也没有开放ssh端口。 主从复制getshell,写入恶意的so文件达到执行系统命令的目的。 github上有一键可以利用的脚本 https://github.com/n0b0dyCN/redis-rogue-server.git 利用条件:需…

逆向案例二十八——红某点集登录接口逆向序

网址:aHR0cHM6Ly93d3cuaHJkanl1bi5jb20vIy9sb2dpbj9yZWRpcmVjdD0lMkZyZWFsVGltZUxpdmluZw 登录接口,发现两个参数加密,分别是pwd和sig,t很明显是时间戳。 观察pwd,发现很像md5加密,我输入的密码是123456,在在线加密网…

day81 session会话 文件上传

知识点: session 文件上传 一 session 1)session:会话 在服务器端存储信息 指客户与服务器的会话 当用户通过浏览器访问服务器的某个页面时,在服务器开辟一个内存空间session 每个session 有唯一的id 2)session过期 …

C——文件操作

1.前言 为什么要使用文件呢? 文件是储存在电脑的磁盘中的,如果没有文件,我们写程序的数据就会存储在电脑的内存中,程序退出,操作系统就会收回内存,数据就丢失了等再次运行程序的时候,是看不到…

【春秋云镜】CVE-2023-43291 emlog SQL注入

靶场介绍 emlog是一款轻量级博客及CMS建站系统,在emlog pro v.2.1.15及更早版本中的不受信任数据反序列化允许远程攻击者通过cache.php组件执行SQL语句。 不感兴趣的可以直接拉到最后面,直接获取flag 备注:没有通过sql注入获取到flag&…

汇编语言——将DX,AX组成的32位数逻辑左移3位

data segment data ends stack segment stacktop label worddw 100 dup (?) stack ends code segmentassume cs:code,ds:data,ss:stack main proc farmov ax,datamov ds,axmov ax,stackmov ss,axlea sp,top;0000 0001 1100 1010 | 0000 0010 0001 1111;逻辑左移三位后&#xf…

基于SpringBoot框架的智慧食堂

采用技术 基于SpringBoot框架实现的web的智慧社区系统的设计与实现~ 开发语言:Java 数据库:MySQL 技术:SpringBootMyBatis 工具:IDEA/Ecilpse、Navicat、Maven 页面展示效果 系统功能 系统首页 用户注册页面 菜品信息页面 …

Android 性能优化(七):APK安装包体积优化

包体积优化重要性 移动 App 特别关注投放转化率指标,而 App 包体积是影响用户新增的重要因素,而 App 的包体积又是影响投放转化率的重要因素。 Google 2016 年公布的研究报告显示,包体积每上升 6MB 就会带来下载转化率降低 1%, …

直方图与核密度估计

技术背景 直方图是一种经常被用于统计的图形表达形式,简单来说它的功能就是用一系列的样本数据,去分析样本的分布规律。而直方图跟核密度估计(Kernel Density Estimation,KDE)方法的主要差别在于,直方图得到的是一个离散化的统计分…