老师,头像为什么会这样?

来源:7-20 上传图片前后端联调与测试

zbbest

2021-03-12

图片描述

小头像的代码里面对大头像进行缩略吧,只是拼接了80x80的url,但是既没有把图片缩略成80x80,又没有上传到fastdfs。

/**
 * @Description: 上传用户头像
 */
@PostMapping("/uploadFaceBase64")
public IMoocJSONResult 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);

	
	// 获取缩略图的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 IMoocJSONResult.ok(result);
}
写回答

1回答

风间影月

2021-03-12

这个问题链路很长,需要从头开始检查,首先需要保证fastdfs安装成功,可以在Linux内部测试上传,并且在nginx结合以后,可以在浏览器打开显示图片。这个必须要做好的。
好了以后,就在代码层去实现上传。如果不行,那就是代码逻辑问题或者代码配置问题。
每个步骤都检查一下吧。这个代码看不出啥问题的,可以直接把老师代码复制过去测试也行噢~

0
0

Netty+Spring Boot仿微信-全栈开发高性能后台及客户端

SpringBoot/Netty+MUI全栈开发 同时搞定后台+ Android&iOS

1501 学习 · 693 问题

查看课程