Swift 如何使用alamofire上传转换为base64的图像?
我正在使用Alamofire管理我应用程序中的网络 我用于将图像上载到服务器的API需要两个参数,即图像名称和图像数据(base64字符串) 我知道如何使用此代码将图像转换为base64Swift 如何使用alamofire上传转换为base64的图像?,swift,xcode,swift4,xcode10,Swift,Xcode,Swift4,Xcode10,我正在使用Alamofire管理我应用程序中的网络 我用于将图像上载到服务器的API需要两个参数,即图像名称和图像数据(base64字符串) 我知道如何使用此代码将图像转换为base64 class func convertImageToBase64(image: UIImage) -> String { let imageData = UIImagePNGRepresentation(image)! return imageData.base64EncodedSt
class func convertImageToBase64(image: UIImage) -> String {
let imageData = UIImagePNGRepresentation(image)!
return imageData.base64EncodedString(options: Data.Base64EncodingOptions.lineLength64Characters)
}
但我不知道怎么得到图像名?!
第二,如果我得到了图像名称,如何将图像上传到服务器,有人能解释上传图像的Alamofire代码吗
这是我的API
Web方法:
准材料
{
“文件名”:“hydangeas.jpg”,
“ImageData”:“base64string”
}
注:
文件名:选择照片的文件名
ImageData:Base 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)
}
{ "FileName":"\(fileName)", "ImageData":"\(base64Image)" }
步骤02:
在参数中设置base64Image,如下所示
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)
}
{ "FileName":"\(fileName)", "ImageData":"\(base64Image)" }
但我需要以jpg的形式上传图像我怎么做?尝试你的代码,但出现红色错误->使用未声明的类型“PHAsset”在下面导入UIKit添加导入照片检查此代码在我的项目中工作,在我构建项目时清理构建你的项目我遇到此错误->键入“UIImagePickerController.InfoKey”(又名“NSString”)没有成员“阶段集”