java 系列文章

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • java 系列文章
  • 前言
  • 一、base64 转 MultipartFile
    • 1. 直接调用 base64Convert 方法
    • 2. 示例代码 (复制过去直接用)
  • 二、MultipartFile 转 base64
    • 1. 示例代码
  • 总结

前言

提示:这里可以添加本文要记录的大概内容:

文件转换:

  1. base64 转 MultipartFile
  2. MultipartFile 转 base64

以下是具体的代码示例


提示:以下是本篇文章正文内容,下面案例可供参考

一、base64 转 MultipartFile

1. 直接调用 base64Convert 方法

2. 示例代码 (复制过去直接用)

package com.hewa.document.convert;import org.springframework.web.multipart.MultipartFile;
import sun.misc.BASE64Decoder;import java.io.*;/*** @Description: 文件格式转换* @Author: bingwoo*/
public class Base64DecodeMultipartFile implements MultipartFile {private final byte[] imgContent;private final String header;public static MultipartFile base64Convert(String base64) {String[] baseStrs = base64.split(","); //base64编码后的图片有头信息所以要分离出来   [0]data:image/png;base64, 图片内容为索引[1]BASE64Decoder decoder = new BASE64Decoder();byte[] b = new byte[0];try {b = decoder.decodeBuffer(baseStrs[1]); //取索引为1的元素进行处理} catch (IOException e) {e.printStackTrace();}for (int i = 0; i < b.length; ++i) {if (b[i] < 0) {b[i] += 256;}}return new Base64DecodeMultipartFile(b, baseStrs[0]);//处理过后的数据通过Base64DecodeMultipartFile转换为MultipartFile对象}public Base64DecodeMultipartFile(byte[] imgContent, String header) {this.imgContent = imgContent;this.header = header.split(";")[0];}@Overridepublic String getName() {return System.currentTimeMillis() + Math.random() + "." + header.split("/")[1];}@Overridepublic String getOriginalFilename() {return System.currentTimeMillis() + (int)Math.random() * 10000 + "." + header.split("/")[1];}@Overridepublic String getContentType() {return header.split(":")[1];}@Overridepublic boolean isEmpty() {return imgContent == null || imgContent.length == 0;}@Overridepublic long getSize() {return imgContent.length;}@Overridepublic byte[] getBytes() throws IOException {return imgContent;}@Overridepublic InputStream getInputStream() throws IOException {return new ByteArrayInputStream(imgContent);}@Overridepublic void transferTo(File dest) throws IOException, IllegalStateException {new FileOutputStream(dest).write(imgContent);}
}

二、MultipartFile 转 base64

1. 示例代码

/*** MultipartFile文件转base64*/
public static String base64ByMultipartFile(MultipartFile file){if (file == null || file.isEmpty()) {throw new RuntimeException("图片不能为空!");}byte[] imageBytes = null;String base64EncoderImg="";try {imageBytes = file.getBytes();base64EncoderImg = Base64.encode(imageBytes);base64EncoderImg = base64EncoderImg.replaceAll("[\\s*\t\n\r]", "");} catch (IOException e) {e.printStackTrace();}return base64EncoderImg;
}

总结

提示:这里对文章进行总结:

如果遇到其他文件类型的转换问题,欢迎留言!

java 文件格式转换相关推荐

  1. java 文件格式转换工具

    有时候一个文件格式正确在某些情况下不一定能够正确播放,下面可以借助于java的一个类帮助我们把文件格式转正确 File source = new File(filepath); int index=a ...

  2. java文件格式转换

    给了个例子,把编码格式为GB2312的文件转换成utf-8格式的文件 package com.hikvision.preplan; import java.io.File; import java.i ...

  3. Java实现文件格式转换(如amr转MP3)并上传FTP服务器实例

    1.准备JAR包 2.代码 首先确定你要转换的文件类型,如amr转成MP3格式,如果你想转换其他的格式,可以参考JAVE 视音频转码,文中详细解释了 JAVE(Java Audio Video Enc ...

  4. java 图片文件 格式转换_Java的图片文件格式转换和线性缩放

    Java的图片文件格式转换和线性缩放 来源:68design.net 2007年07月13日 08:31 图片文件格式转换最核心的问题就是要解决各种图片格式的编码和解码,推荐用jimi包,可从 htt ...

  5. java图片转换pdf_Java实现图片转换PDF文件的示例代码

    最近因为一些事情,需要将一张简单的图片转换为PDF的文件格式,在网上找了一些工具,但是这些工具不是需要注册账号,就是需要下载软件. 而对于只是转换一张图片的情况下,这些操作显然是非常繁琐的,所以作者就 ...

  6. PX4飞行日志分析与.ulg文件格式转换

    文章目录 一.FlightPlot安装及使用 二..ulg文件格式转换(windows环境) 一.FlightPlot安装及使用 1)下载FlightPlot源码 git clone --recurs ...

  7. 纯java pdf转换成html,java pdf转换html代码

    java pdf转换html代码 [2021-02-03 00:56:42]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&quo ...

  8. vim windows linux文件格式转换

    vim windows linux文件格式转换 set ff?     #显示当前文件格式 set ff=unix     #设置成unix格式 set ff=dos #设置成dos格式 posted ...

  9. 【引用】在Eclipse中将java Project转换成Dynamic Web Project

    编辑工程的.project文件: 添加 <nature>org.eclipse.wst.common.project.facet.core.nature</nature> &l ...

最新文章

  1. InstallShield9中开始菜单的设置
  2. easyui datalist 动态绑定数据_一文看懂动态链接
  3. PHPMaker 2020中文版
  4. 西部数据 MyCloud 网络存储存在 RCE 漏洞
  5. 关于Vue中计算属性computed和methods属性的区别,你了解多少呢
  6. Eclipse新建web项目正常启动tomcat不报错,但不能访问项目的解决方法
  7. android camera2 采集,视频采集:Android平台基于Camera 2的实现
  8. 在玩客云或树莓派上通过ffmpeg将视频推流到直播平台
  9. hdu 3642 Get The Treasury(扫描线)
  10. snownlp 原理_情感分析snownlp包部分核心代码理解
  11. editormd显示后台html,editormd文档不显示内容了,js也全部都引入了
  12. STM8S003F3 内部时钟初始化以及定时器做延时的使用
  13. NETWARE系统加入服务器,如何在 Netware 服务器中安装多块网卡
  14. 74HC595驱动数码管显示模块使用说明
  15. oracle中datedif函数,Datedif函数全面解析和BUG分析
  16. Chrome浏览器被篡改主页的解决办法
  17. Python招聘职位大体是两个方向
  18. 阿里云企业版云服务器如何选择及部署策略
  19. zstuoj 4246 萌新吃果果
  20. 基于计算机视觉的手势识别技术

热门文章

  1. 天气API 实时降水预报接口, 实时降雨量数据接口
  2. 计算机基础实验指导第3版答案,计算机基础实验指导(第3版)
  3. 美国南加大工程学院计算机,美国南加州大学工程学院排名是多少?
  4. python常量基本类型有哪些_Python变量,常量,基本数据类型,输入用户交互,基础,input...
  5. CODE[VS] 1219 骑士游历
  6. 点击应用图标-应用(Activity)的启动流程
  7. 全新版PS色环插件Coolorus,支持PSCS6-CC2022
  8. Oracle 利用 UTL_SMTP 包发送邮件
  9. EyeKey王姝琦:生物识别的6大误区
  10. java自动化测试语言高级之Java 8 新特性