diff --git a/src/main/java/xuan/controller/UserController.java b/src/main/java/xuan/controller/UserController.java index 0b0a984..969a7a2 100644 --- a/src/main/java/xuan/controller/UserController.java +++ b/src/main/java/xuan/controller/UserController.java @@ -10,8 +10,6 @@ import xuan.service.UserInfoService; import java.io.File; import java.io.IOException; -import java.io.InputStream; -import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -66,12 +64,7 @@ public class UserController { openId = "guest_" + System.currentTimeMillis(); } - String localAvatarUrl = avatarUrl; - if (avatarUrl != null && !avatarUrl.isEmpty() && avatarUrl.startsWith("http")) { - localAvatarUrl = downloadAvatar(avatarUrl, openId); - } - - UserInfo user = userInfoService.loginOrRegister(openId, username, localAvatarUrl); + UserInfo user = userInfoService.loginOrRegister(openId, username, avatarUrl); Map data = new HashMap<>(); data.put("id", user.getId()); @@ -94,40 +87,6 @@ public class UserController { return result; } - private String downloadAvatar(String imageUrl, String userId) { - try { - String uploadDir = "uploads/avatars/"; - File dir = new File(uploadDir); - if (!dir.exists()) { - dir.mkdirs(); - } - - String extension = ".jpg"; - if (imageUrl.contains(".")) { - String tempExt = imageUrl.substring(imageUrl.lastIndexOf(".")); - if (tempExt.contains("?")) { - tempExt = tempExt.substring(0, tempExt.indexOf("?")); - } - if (tempExt.length() <= 5 && tempExt.matches("\\.[a-zA-Z]+")) { - extension = tempExt; - } - } - - String filename = userId + "_" + System.currentTimeMillis() + extension; - Path filePath = Paths.get(uploadDir + filename); - - URL url = new URL(imageUrl); - try (InputStream in = url.openStream()) { - Files.copy(in, filePath); - } - - return "/uploads/avatars/" + filename; - } catch (Exception e) { - System.err.println("下载头像失败: " + e.getMessage()); - return imageUrl; - } - } - @GetMapping("/info") public Map getUserInfo(@RequestParam String userId) { Map result = new HashMap<>(); diff --git a/xuan-deduct-uniapp/src/components/auth-modal/auth-modal.vue b/xuan-deduct-uniapp/src/components/auth-modal/auth-modal.vue index 0731840..7e4af43 100644 --- a/xuan-deduct-uniapp/src/components/auth-modal/auth-modal.vue +++ b/xuan-deduct-uniapp/src/components/auth-modal/auth-modal.vue @@ -211,37 +211,35 @@ export default { console.log('获取code成功:', loginRes.code) let avatarUrlForServer = this.avatarUrl - if (this.avatarUrl && (this.avatarUrl.startsWith('http://tmp/') || this.avatarUrl.startsWith('wxfile://'))) { - uni.showLoading({ title: '上传头像...' }) - try { - const uploadRes = await new Promise((resolve, reject) => { - uni.uploadFile({ - url: api.getBaseUrl() + '/user/uploadAvatar', - filePath: this.avatarUrl, - name: 'file', - formData: { - temp: 'true' - }, - success: (res) => { - try { - const data = JSON.parse(res.data) - resolve(data) - } catch (e) { - reject(e) - } - }, - fail: reject - }) + uni.showLoading({ title: '上传头像...' }) + try { + const uploadRes = await new Promise((resolve, reject) => { + uni.uploadFile({ + url: api.getBaseUrl() + '/user/uploadAvatar', + filePath: this.avatarUrl, + name: 'file', + formData: { + temp: 'true' + }, + success: (res) => { + try { + const data = JSON.parse(res.data) + resolve(data) + } catch (e) { + reject(e) + } + }, + fail: reject }) - - if (uploadRes.success && uploadRes.data) { - avatarUrlForServer = uploadRes.data.avatarUrl || uploadRes.data - } - uni.hideLoading() - } catch (e) { - uni.hideLoading() - console.error('上传头像失败:', e) + }) + + if (uploadRes.success && uploadRes.data) { + avatarUrlForServer = uploadRes.data.avatarUrl || uploadRes.data } + uni.hideLoading() + } catch (e) { + uni.hideLoading() + console.error('上传头像失败:', e) } const res = await api.userApi.loginOrRegister({