如何使用 Alamofire 上传转换为 base64 的图像?



我正在使用Alamofire在我的应用程序中管理网络 我用来将图像上传到服务器的 API 需要两个参数,即图像名称和图像数据(base 64 字符串( 我知道如何使用此代码将图像转换为base64

class func convertImageToBase64(image: UIImage) -> String {
let imageData = UIImagePNGRepresentation(image)!
return imageData.base64EncodedString(options: Data.Base64EncodingOptions.lineLength64Characters)
}

但我不知道如何获取图像名称?! 其次,如果我得到了图像名称,如何将图像上传到服务器,任何人都可以解释上传图像的Alamofire代码吗?

这是我的接口

网页方式 :

https://serverName/AddPhoto

参数

{ "文件名":"绣球花.jpg", "ImageData":"base64string" }

笔记: 文件名:照片的选择文件名 图像数据:基数 64 字符串表示 Imge 字节

提前谢谢你

步骤01 :

在顶部导入照片库

import Photos

使用 UIImagePickerController(( 获取图像,如下所示

var base64Image: String?
var fileName: String?
override func viewDidLoad() {
super.viewDidLoad()
let image = UIImagePickerController()
image.delegate = self
image.sourceType = UIImagePickerController.SourceType.photoLibrary
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
if let asset = info[UIImagePickerController.InfoKey.phAsset] as? PHAsset {
if let fileName = (asset.value(forKey: "filename")) as? String {
self.fileName = fileName
}
}

base64Image = convertImageToBase64(image: image)
}
self.dismiss(animated: true, completion: nil)
}
func convertImageToBase64(image: UIImage) -> String {
let imageData = image.pngData()!
return imageData.base64EncodedString(options: Data.Base64EncodingOptions.lineLength64Characters)
}

步骤02: 像这样在你的参数中设置 base64Image

{ "FileName":"(fileName)", "ImageData":"(base64Image)" }

最新更新