上传 MultipartFile 图片文件时保存至服务器;前端再次请求时无法根据保存的URL加载出图片,因此如果能在传文件时,后端将图片file转化成base64或者blob格式的文件,就不用再考虑跨域的情况;
通过
//图片file转base64
BASE64Encoder encoder = new BASE64Encoder();
String fileStr = "data:image/png;base64," + encoder.encode(file.getBytes());
上述代码将MultipartFile 类型的图片file转化为base64格式的string字符串,给到前端去获取图片;
然而base64转化后可能存在换行、空格等,导致前端Vue插件直接根据上述base64字符串是无法得到正确的图片的,因此需要:
fileStr = fileStr.replaceAll("[\\s*\t\n\r]", "");
用上述正则替换,即可完成所有需求。