因为获取jar包中的文件路径的格式已经变为*.jar!*(除了第一个),这种格式的路径,不能通过new File的方式找到文件。因此如果是单文件,可以用流来获取,多文件因为不能获取绝对路径因此不能用文件循环上传。解决办法:
方法1:自己创建一个绝对路径,不存放在jar里面【docker 容器有复制命令,可以把jar包里的文件复制出来】,然后使用绝对路径进行操作
方法2:因为不能用File 来直接读取,但是可以直接用流,因此换种思考方法,把所有的图片名称写入一个json文件,然后读取json 文件里的所有图片名,循环图片名,然后一个个读取成流进行操作
如:icon.json
{
"文件使用说明": "跟随版本需求,按要求新增系统参数。系统启动时,自动上传图片。",
"参数取值说明": "分居民端:resident与医生端:doctor,值为图片名称。",
"输入方式说明": "0:普通文本text;1:长内容文本textarea;2:单选;3:多选",
"适用角色说明": "0:医生,1:居民",
"doctoraddress": "menuicons/doctor/",
"residentaddress": "menuicons/resident/",
"parameters": {
"doctor": [
"注册居民.png"
],
"resident": [
"自助建档.png"
]
}
}
log