推荐源:
源名称 源地址
七牛 (推荐) https://dn-qiniu-avatar.qbox.me
极客族 (推荐) https://sdn.geekzu.org
https://blog.csdn.net/m0_57077948/article/details/117524555?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-117524555-blog-128680545.235^v31^pc_relevant_default_base3&spm=1001.2101.3001.4242.2&utm_relevant_index=4
https://deepmind.t-salon.cc/article/5835
方案
发现thymeleaf 的js文件会有不刷新的问题,
<script type="text/javascript" src="../../js/index.js"
th:src="@{/js/index.js(v=${new java.util.Date().getTime()})}"></script>
1、使用 @{/bootstrap/css/signin.css(v=${version})}
<link th:href="@{/bootstrap/css/signin.css(v=${version})}" href="/bootstrap/css/signin.css" rel="stylesheet">
Base64转换工具类:
1、使用JDK6自带的(不建议使用)
import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
//编码
BASE64Encoder encoder = new BASE64Encoder();
String imageString = encoder.encode(byteArray);//转换成Base64形式
//解码
BASE64Decoder decoder = new BASE64Decoder();
byte[] imageByteArray = decoder.decodeBuffer(imageString);
但这个性能一般,而且转换出来的base64字符串会有换行符,可能还需要替换换行符,避免在某些场景因为分行导致出错
2、使用Jdk8的Base64工具类(优先考虑使用)
java.util.Base64
//编码
Base64.getEncoder().encodeToString("aaaaaaaa".getBytes("utf-8"));
//解码
Base64.getDecoder().decode("c29tZSBzdHJpbmc=");
//URL编码
//URL对反斜线“/”有特殊的意义,因此URL编码需要替换掉它,使用下划线替换
Base64.getUrlEncoder().encodeToString("test.do?abcd".getBytes("utf-8"));
//MIME编码
//每一行输出不超过76个字符,而且每行以“\r\n”符结束
Base64.getMimeEncoder().encodeToString("aaaaaaaa".getBytes("utf-8"));
//流文件编码、解码
Base64.getEncoder().wrap(outputStream);
Base64.getDecoder().wrap(inputStream);
性能超好,如果已经使用JDK8,直接使用这个。
3、使用Spring提供的Base64Utils类
org.springframework.util.Base64Utils;
4、使用apache中的Base64
org.apache.commons.codec.binary.Base64
5、使用第三方工具类(附件有相应的jar包)
net.iharder.Base64;
Base64.encodeBytes(bytes);
//直接从文件路径获取base64编码
Base64.encodeFromFile("c:/938dcfd836be4e15a225110dc77769d0.jpg");
文件转成字节
File file = new File("c:/5110dc77769d0.jpg");
InputStream inputStream = new FileInputStream(file);
byte[] bytes = new byte[inputStream.available()];
inputStream.read(bytes);
inputStream.close();