若依前后端分离项目上传头像报错String index out of range: -1

前台提示:
上传头像错误

后台报错信息(有省略):

java.io.IOException: String index out of range: -1
	at com.ruoyi.common.utils.file.FileUploadUtils.upload(FileUploadUtils.java:83)
	at com.ruoyi.web.controller.system.SysProfileController.avatar(SysProfileController.java:114)
......

Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
	at java.lang.String.substring(String.java:1967)
	at com.ruoyi.common.utils.file.FileUploadUtils.extractFilename(FileUploadUtils.java:127)
	at com.ruoyi.common.utils.file.FileUploadUtils.upload(FileUploadUtils.java:111)
	at com.ruoyi.common.utils.file.FileUploadUtils.upload(FileUploadUtils.java:79)

关键问题就出在倒数第3行的 (FileUploadUtils.java:127)

去git发现若依现在到3.8.3了,而我用的还是3.3.0版本,,应该是后来的版本更新把这个问题修复了。

但整个项目已经不好升级若依版本了,所以我对比了一下若依最新版本的代码,对应的改了几个地方:

1.修改了:E:\RuoYi-Vue\ruoyi-common\src\main\java\com\ruoyi\common\utils\file\FileUploadUtils.java类的extractFilename方法为最新代码

链接:https://gitee.com/y_project/RuoYi-Vue/blob/master/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java
(123-127行)

2.添加Seq
E:\RuoYi-Vue\ruoyi-common\src\main\java\com\ruoyi\common\utils\uuid\Seq.java

链接:https://gitee.com/y_project/RuoYi-Vue/blob/master/ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/Seq.java

3.缺少一个StringUtils.padl(value, length)方法,所以还修改了:
E:\RuoYi-Vue\ruoyi-common\src\main\java\com\ruoyi\common\utils\StringUtils.java
添加了对应的2个padl方法

链接:https://gitee.com/y_project/RuoYi-Vue/blob/master/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java
(535-582行)

就可以了!
修改成功

Logo

快速构建 Web 应用程序

更多推荐