社交软件图片上传功能的后端实现思路

网络新闻 3年前 (2022) admin
0

功能流程:

1. 新建userBO对象从前端接收base64字符串,转换为文件对象

2.将文件对象转换为MultipartFile(fastdfs所需要的文件类型)

3.利用fastDFSClient工具上传图片,上传成功会返回文件存储地址,并且会自动生成一个缩略图

4.缩略图有命名规则,按照规则获取缩略图的存储地址

5.将大图和缩略图的存储地址设定在userBO对象上

6.将用户对象信息更新至数据库,并将更新后的信息查询并返回给前端

 

 

主要代码展示如下:

controller

@PostMapping("/uploadFaceBase64") public JSONResult uploadFaceBase64(@RequestBody UsersBO userBO) throws Exception{ // 获取前端传来的base64字符串, 然后转换为文件对象再上传 String base64Data = userBO.getFaceData(); String userFacePath = "C:\\" + userBO.getUserId() + "userFace64.png"; FileUtils.base64ToFile(userFacePath, base64Data); // 上传文件到fastdfs MultipartFile faceFile = FileUtils.fileToMultipart(userFacePath); String url = fastDFSClient.uploadBase64(faceFile); System.out.println(url); // 上传后会生成两个图,一大一小,文件名形式为: // "ashidaosdausiudfpoiuspdfiu.png" // "ashidaosdausiudfpoiuspdfiu_80x80.png" // 获取缩略图的url String thump = "_80x80."; String arr[] = url.split("\\."); String thumpImgUrl = arr[0] + thump + arr[1]; // 更新用户头像 Users user = new Users(); user.setId(userBO.getUserId()); user.setFaceImage(thumpImgUrl); user.setFaceImageBig(url); Users result = userService.updateUserInfo(user); return JSONResult.ok(result);

service

 

 

 

版权声明:admin 发表于 2022-08-29 12:43:59。
转载请注明:社交软件图片上传功能的后端实现思路 | 火资源软件