0.问题产生原因
- 文件名称中含有中文,tomcat转发后可能无法正确解析文件路径.故无法访问
1.后端改造
1.1 新增base64编码工具类
MyBase64Utils.java
1.2 改造文件上传方法

/*** 编码文件名*/public static final String extractFilename(MultipartFile file) throws UnsupportedEncodingException {String fileName = file.getOriginalFilename();String extension = getExtension(file);String leftName= Objects.requireNonNull(fileName).replace("."+extension,"");fileName = DateUtils.datePath() + "/" + MyBase64Utils.encode(leftName)+"."+extension;return fileName;}
2.前端改造
2.1 引入 base64.js
base64.js
在模版中引入base64.js
<script th:src="@{/js/base64.js}"></script>
2.2 替换 upland-lxz.js
直接替换即可
upload-lxz.js
以下是相对于之前改动的部分
function getOldName(text){let endIndex = text.lastIndexOf(".");let leftName = text.substring(0,endIndex);let rightName = text.substring(endIndex);leftName=leftName.replace("⭐","/");leftName=Base.decode(leftName);return leftName+rightName;}

