From d15acc903826e109e991c0ab7e7237df23e33dcf Mon Sep 17 00:00:00 2001 From: jinyaqiu Date: Tue, 19 Aug 2025 15:43:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E4=B8=AD=E6=96=87?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 126571 -> 188452 bytes wake/View/Components/Upload/Avatar.swift | 158 +++----- wake/View/Components/Upload/Upload.swift | 354 ++++++++++++++++++ 3 files changed, 415 insertions(+), 97 deletions(-) diff --git a/wake.xcodeproj/project.xcworkspace/xcuserdata/elliwood.xcuserdatad/UserInterfaceState.xcuserstate b/wake.xcodeproj/project.xcworkspace/xcuserdata/elliwood.xcuserdatad/UserInterfaceState.xcuserstate index ce3ab0a0f915cf11accc7aeb4c7122df9dd91f0a..0f1001442214501c886bdd1f703e296c986df7a2 100644 GIT binary patch literal 188452 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 sKU3@q&7`xjr=#v<%YT3=tLLv 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 literal 126571 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 Q`TzUh|Nno6v>p6^0PQpk-T(jq diff --git a/wake/View/Components/Upload/Avatar.swift b/wake/View/Components/Upload/Avatar.swift index 2757c5d..b084772 100644 --- a/wake/View/Components/Upload/Avatar.swift +++ b/wake/View/Components/Upload/Avatar.swift @@ -5,22 +5,15 @@ import PhotosUI /// 照片选择器,封装了系统相册选择功能 struct PhotoPicker: UIViewControllerRepresentable { - // MARK: - Properties - @Binding var selectedImages: [UIImage] + + /// 最多可选图片数量 let selectionLimit: Int + + /// 图片过滤器,默认为图片类型 let filter: PHPickerFilter - var onImageUploaded: ((Result) -> Void)? - var onUploadProgress: ((ImageUploadService.UploadProgress) -> Void)? - @Environment(\.presentationMode) private var presentationMode - // MARK: - Initialization - - init(selectedImages: Binding<[UIImage]>, - selectionLimit: Int = 1, - filter: PHPickerFilter = .images, - onImageUploaded: ((Result) -> Void)? = nil, - onUploadProgress: ((ImageUploadService.UploadProgress) -> Void)? = nil) { + init(selectedImages: Binding<[UIImage]>, selectionLimit: Int = 1, filter: PHPickerFilter = .images) { self._selectedImages = selectedImages self.selectionLimit = selectionLimit self.filter = filter @@ -30,7 +23,13 @@ struct PhotoPicker: UIViewControllerRepresentable { // MARK: - UIViewControllerRepresentable + // MARK: - UIViewControllerRepresentable 协议方法 + + /// 创建并返回PHPickerViewController实例 + /// - Parameter context: 上下文 + /// - Returns: 配置好的PHPickerViewController func makeUIViewController(context: Context) -> PHPickerViewController { + // 配置照片选择器 var configuration = PHPickerConfiguration(photoLibrary: PHPhotoLibrary.shared()) configuration.filter = filter configuration.selectionLimit = selectionLimit @@ -41,139 +40,109 @@ struct PhotoPicker: UIViewControllerRepresentable { return picker } + /// 更新视图控制器 + /// - Parameters: + /// - uiViewController: 要更新的视图控制器 + /// - context: 上下文 func updateUIViewController(_ uiViewController: PHPickerViewController, context: Context) {} + /// 创建协调器 + /// - Returns: 协调器实例 func makeCoordinator() -> Coordinator { Coordinator(self) } // MARK: - Coordinator + // MARK: - 协调器类 + + /// 协调器,处理PHPickerViewController的代理方法 class Coordinator: NSObject, PHPickerViewControllerDelegate { + /// 父视图引用 let parent: PhotoPicker private let uploadService = ImageUploadService.shared + /// 初始化方法 + /// - Parameter parent: 父视图 init(_ parent: PhotoPicker) { self.parent = parent } + /// 用户完成图片选择时调用 + /// - Parameters: + /// - picker: 图片选择器 + /// - results: 选中的图片结果 func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { - guard !results.isEmpty else { - parent.presentationMode.wrappedValue.dismiss() - return - } - parent.selectedImages.removeAll() + let group = DispatchGroup() var loadedImages: [Int: UIImage] = [:] var uploadResults: [Int: ImageUploadService.UploadResults] = [:] var lastError: Error? + // 遍历所有选中的图片 for (index, result) in results.enumerated() { group.enter() + // 检查是否支持加载图片 if result.itemProvider.canLoadObject(ofClass: UIImage.self) { + // 异步加载图片 result.itemProvider.loadObject(ofClass: UIImage.self) { (image, error) in - if let error = error { - lastError = error - group.leave() - return + if let image = image as? UIImage { + loadedImages[index] = image } - - guard let image = image as? UIImage else { - lastError = NSError(domain: "com.wake.upload", code: -2, userInfo: [NSLocalizedDescriptionKey: "Failed to load image"]) - group.leave() - return - } - - loadedImages[index] = image - - // Upload the image - self.uploadService.uploadOriginalAndCompressedImage( - image, - compressionQuality: 0.5, - progress: { progress in - DispatchQueue.main.async { - self.parent.onUploadProgress?(progress) - } - }, - completion: { result in - defer { group.leave() } - - switch result { - case .success(let results): - uploadResults[index] = results - - // Upload file info to backend - MaterialService.shared.uploadMaterialInfo( - fileId: results.original.fileId, - previewFileId: results.compressed.fileId - ) { success, errorMessage in - if success { - print("✅ 文件信息上传成功") - } else if let errorMessage = errorMessage { - print("❌ 文件信息上传失败: \(errorMessage)") - } - } - - case .failure(let error): - lastError = error - print("❌ 图片上传失败: \(error.localizedDescription)") - } - } - ) + group.leave() } } else { group.leave() } } - group.notify(queue: .main) { [weak self] in - guard let self = self else { return } + group.notify(queue: .main) { + // Sort the images by their original index to maintain selection order + let sortedImages = loadedImages.sorted { $0.key < $1.key }.map { $0.value } + self.parent.selectedImages.append(contentsOf: sortedImages) - if let error = lastError { - self.parent.onImageUploaded?(.failure(error)) - } else { - let sortedImages = loadedImages.sorted { $0.key < $1.key }.map { $0.value } - self.parent.selectedImages.append(contentsOf: sortedImages) - - if let firstResult = uploadResults.first?.value { - self.parent.onImageUploaded?(.success(firstResult)) - } else { - self.parent.onImageUploaded?(.failure(NSError( - domain: "com.wake.upload", - code: -1, - userInfo: [NSLocalizedDescriptionKey: "上传过程中出现错误"] - ))) - } - } - - self.parent.presentationMode.wrappedValue.dismiss() + // Dismiss the picker + picker.dismiss(animated: true) } } } } -// MARK: - Avatar Uploader - -/// 头像上传视图,提供头像选择功能 +// MARK: - Avatar Uploader Component struct AvatarUploader: View { + // MARK: - 属性 + + /// 当前选中的头像图片 @Binding var selectedImage: UIImage? + + /// 头像尺寸 let size: CGFloat var onUploadComplete: ((Result) -> Void)? + // MARK: - 状态 + + /// 是否显示图片选择器 @State private var isImagePickerPresented = false + // MARK: - 视图 + var body: some View { - Button(action: { isImagePickerPresented = true }) { + Button(action: { + isImagePickerPresented = true + }) { ZStack { + // Avatar Image or Placeholder if let selectedImage = selectedImage { + // 已选择的头像图片 Image(uiImage: selectedImage) .resizable() .scaledToFill() .frame(width: size, height: size) .clipShape(RoundedRectangle(cornerRadius: size * 0.1)) } else { + // Default avatar container Color.gray.opacity(0.1) .frame(width: size, height: size) .overlay( @@ -188,24 +157,19 @@ struct AvatarUploader: View { } } .frame(width: size, height: size) - .contentShape(Rectangle()) + .contentShape(Rectangle()) // Make the entire area tappable } - .buttonStyle(PlainButtonStyle()) + .buttonStyle(PlainButtonStyle()) // Remove button highlight effect .sheet(isPresented: $isImagePickerPresented) { PhotoPicker( + // 绑定选中的图片 selectedImages: Binding( get: { [selectedImage].compactMap { $0 } }, set: { images in selectedImage = images.first } ), - selectionLimit: 1, - onImageUploaded: { result in - onUploadComplete?(result) - }, - onUploadProgress: { progress in - print("上传进度:\(progress.current)/\(progress.total),进度:\(Int(progress.progress * 100))%") - } + selectionLimit: 1 ) } } diff --git a/wake/View/Components/Upload/Upload.swift b/wake/View/Components/Upload/Upload.swift index e69de29..402ac0f 100644 --- a/wake/View/Components/Upload/Upload.swift +++ b/wake/View/Components/Upload/Upload.swift @@ -0,0 +1,354 @@ +import SwiftUI +import PhotosUI + +/// 上传响应数据结构体,用于解析服务器返回的上传URL和表单字段 +struct UploadResponse: Codable { + let url: String // 上传文件的目标URL + let fields: [String: String] // 上传所需的表单字段 +} + +/// 图片上传管理器,负责处理图片上传相关逻辑 +class ImageUploader: ObservableObject { + // MARK: - 发布属性 + @Published var isUploading = false // 是否正在上传 + @Published var uploadProgress: Double = 0 // 上传进度 + @Published var error: Error? // 上传错误信息 + + // 基础API地址 + private let baseURL = "https://api.memorywake.com/api/v1" + + /// 上传图片到服务器 + /// - Parameters: + /// - image: 要上传的图片 + /// - completion: 完成回调,返回上传结果 + func uploadImage(_ image: UIImage, completion: @escaping (Result) -> Void) { + // 1. 将图片转换为JPEG数据 + guard let imageData = image.jpegData(compressionQuality: 0.8) else { + completion(.failure(NSError(domain: "", code: -1, + userInfo: [NSLocalizedDescriptionKey: "图片数据转换失败"]))) + return + } + + // 2. 构建获取上传URL的请求 + guard let url = URL(string: "\(baseURL)/iam/file/generate-upload-url") else { + completion(.failure(NSError(domain: "", code: -1, + userInfo: [NSLocalizedDescriptionKey: "无效的URL"]))) + return + } + + var request = URLRequest(url: url) + request.httpMethod = "POST" + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + + // 3. 发起获取上传URL的请求 + URLSession.shared.dataTask(with: request) { [weak self] data, response, error in + guard let self = self else { return } + + // 处理网络错误 + if let error = error { + DispatchQueue.main.async { completion(.failure(error)) } + return + } + + // 检查响应数据 + guard let data = data else { + let error = NSError(domain: "", code: -1, + userInfo: [NSLocalizedDescriptionKey: "未收到服务器响应"]) + DispatchQueue.main.async { completion(.failure(error)) } + return + } + + do { + // 4. 解析上传URL响应 + let uploadResponse = try JSONDecoder().decode(UploadResponse.self, from: data) + // 5. 开始实际上传文件 + self.uploadFile(to: uploadResponse.url, + with: uploadResponse.fields, + imageData: imageData, + completion: completion) + } catch { + DispatchQueue.main.async { completion(.failure(error)) } + } + }.resume() + } + + /// 实际上传文件到指定的URL + /// - Parameters: + /// - url: 上传URL + /// - fields: 上传所需的表单字段 + /// - imageData: 图片数据 + /// - completion: 完成回调 + private func uploadFile(to url: String, + with fields: [String: String], + imageData: Data, + completion: @escaping (Result) -> Void) { + + // 验证上传URL + guard let uploadURL = URL(string: url) else { + completion(.failure(NSError(domain: "", code: -1, + userInfo: [NSLocalizedDescriptionKey: "无效的上传URL"]))) + return + } + + // 配置上传请求 + var request = URLRequest(url: uploadURL) + request.httpMethod = "POST" + + // 设置multipart/form-data边界 + let boundary = "Boundary-\(UUID().uuidString)" + request.setValue("multipart/form-data; boundary=\(boundary)", + forHTTPHeaderField: "Content-Type") + + // 构建请求体 + var body = Data() + + // 添加表单字段 + for (key, value) in fields { + body.append("--\(boundary)\r\n".data(using: .utf8)!) + body.append("Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n".data(using: .utf8)!) + body.append("\(value)\r\n".data(using: .utf8)!) + } + + // 添加图片数据 + let filename = "\(UUID().uuidString).jpg" + body.append("--\(boundary)\r\n".data(using: .utf8)!) + body.append("Content-Disposition: form-data; name=\"file\"; filename=\"\(filename)\"\r\n".data(using: .utf8)!) + body.append("Content-Type: image/jpeg\r\n\r\n".data(using: .utf8)!) + body.append(imageData) + body.append("\r\n--\(boundary)--\r\n".data(using: .utf8)!) + + request.httpBody = body + + // 执行上传任务 + URLSession.shared.dataTask(with: request) { _, _, error in + DispatchQueue.main.async { + if let error = error { + completion(.failure(error)) + } else { + completion(.success("上传成功")) + } + } + }.resume() + } +} + +/// 照片选择器,封装了系统相册选择功能 +struct PhotoPicker: UIViewControllerRepresentable { + // MARK: - 属性 + @Binding var selectedImages: [UIImage] // 绑定的已选图片数组 + let selectionLimit: Int // 最多可选图片数量 + let filter: PHPickerFilter // 图片过滤器 + var onUploadComplete: ((Result) -> Void)? = nil // 上传完成回调 + private let uploader = ImageUploader() // 图片上传器 + + // MARK: - 初始化方法 + init(selectedImages: Binding<[UIImage]>, + selectionLimit: Int = 1, + filter: PHPickerFilter = .images, + onUploadComplete: ((Result) -> Void)? = nil) { + self._selectedImages = selectedImages + self.selectionLimit = selectionLimit + self.filter = filter + self.onUploadComplete = onUploadComplete + } + + // MARK: - UIViewControllerRepresentable 协议方法 + + /// 创建并返回PHPickerViewController实例 + func makeUIViewController(context: Context) -> PHPickerViewController { + var configuration = PHPickerConfiguration(photoLibrary: PHPhotoLibrary.shared()) + configuration.filter = filter + configuration.selectionLimit = selectionLimit + configuration.preferredAssetRepresentationMode = .current + + let picker = PHPickerViewController(configuration: configuration) + picker.delegate = context.coordinator + return picker + } + + /// 更新视图控制器 + func updateUIViewController(_ uiViewController: PHPickerViewController, context: Context) {} + + /// 创建协调器 + func makeCoordinator() -> Coordinator { + Coordinator(self) + } + + // MARK: - 协调器类 + + /// 协调器,处理PHPickerViewController的代理方法 + class Coordinator: NSObject, PHPickerViewControllerDelegate { + let parent: PhotoPicker + + init(_ parent: PhotoPicker) { + self.parent = parent + } + + /// 用户完成图片选择时调用 + func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { + parent.selectedImages.removeAll() + + let group = DispatchGroup() + var loadedImages: [Int: UIImage] = [:] + + // 加载选中的图片 + for (index, result) in results.enumerated() { + group.enter() + + // 检查是否支持加载图片 + if result.itemProvider.canLoadObject(ofClass: UIImage.self) { + result.itemProvider.loadObject(ofClass: UIImage.self) { [weak self] (image, error) in + if let image = image as? UIImage { + // 保存加载的图片 + loadedImages[index] = image + + // 立即上传图片 + self?.parent.uploader.uploadImage(image) { result in + self?.parent.onUploadComplete?(result) + } + } + group.leave() + } + } else { + group.leave() + } + } + + // 所有图片加载完成后的处理 + group.notify(queue: .main) { + // 按原始顺序排序图片 + let sortedImages = loadedImages.sorted { $0.key < $1.key }.map { $0.value } + self.parent.selectedImages.append(contentsOf: sortedImages) + + // 关闭选择器 + picker.dismiss(animated: true) + } + } + } +} + +// MARK: - 头像上传组件 + +/// 头像上传视图,提供头像选择、上传和显示功能 +struct AvatarUploader: View { + // MARK: - 属性 + @Binding var selectedImage: UIImage? // 当前选中的头像图片 + let size: CGFloat // 头像尺寸 + + // MARK: - 状态 + @State private var isImagePickerPresented = false // 是否显示图片选择器 + @State private var isUploading = false // 是否正在上传 + @State private var uploadError: Error? // 上传错误信息 + + // MARK: - 视图 + var body: some View { + Button(action: showImagePicker) { + ZStack { + // 显示选中的图片或默认占位图 + if let selectedImage = selectedImage { + // 已选中的头像图片 + Image(uiImage: selectedImage) + .resizable() + .scaledToFill() + .frame(width: size, height: size) + .clipShape(RoundedRectangle(cornerRadius: size * 0.1)) + } else { + // 默认头像占位图 + Color.gray.opacity(0.1) + .frame(width: size, height: size) + .overlay( + SVGImage(svgName: "Avatar") + .frame(width: size * 0.8, height: size * 0.8) + ) + .clipShape(RoundedRectangle(cornerRadius: size * 0.1)) + .overlay( + RoundedRectangle(cornerRadius: size * 0.1) + .stroke(Color.gray.opacity(0.3), lineWidth: 1) + ) + } + + // 上传加载指示器 + if isUploading { + ProgressView() + .progressViewStyle(CircularProgressViewStyle(tint: .white)) + .scaleEffect(1.5) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .background(Color.black.opacity(0.5)) + .clipShape(RoundedRectangle(cornerRadius: size * 0.1)) + } + } + .frame(width: size, height: size) + .contentShape(Rectangle()) // 使整个区域可点击 + } + .buttonStyle(PlainButtonStyle()) // 移除按钮默认样式 + .alert("上传失败", isPresented: .constant(uploadError != nil)) { + Button("确定") { + uploadError = nil + } + } message: { + if let error = uploadError { + Text(error.localizedDescription) + } else { + Text("请重试") + } + } + .sheet(isPresented: $isImagePickerPresented) { + // 图片选择器 + PhotoPicker( + selectedImages: Binding( + get: { [selectedImage].compactMap { $0 } }, + set: { images in + selectedImage = images.first + } + ), + selectionLimit: 1, + onUploadComplete: handleUploadResult + ) + .onAppear { + isUploading = true + } + } + } + + // MARK: - 私有方法 + + /// 显示图片选择器 + private func showImagePicker() { + isImagePickerPresented = true + } + + /// 处理上传结果 + private func handleUploadResult(_ result: Result) { + isUploading = false + + switch result { + case .success(let message): + print("上传成功: \(message)") + case .failure(let error): + uploadError = error + print("上传失败: \(error.localizedDescription)") + } + } +} + +// MARK: - 预览提供程序 +#if DEBUG +struct AvatarUploader_Previews: PreviewProvider { + static var previews: some View { + VStack(spacing: 20) { + // 默认状态预览 + AvatarUploader(selectedImage: .constant(nil), size: 100) + .padding() + .previewDisplayName("默认状态") + + // 已选择图片状态预览 + AvatarUploader( + selectedImage: .constant(UIImage(systemName: "person.crop.circle.fill")), + size: 120 + ) + .padding() + .previewDisplayName("已选择图片") + } + } +} +#endif \ No newline at end of file