使用Alamofire swift 4上传文件
我试图使用Alamofire(swift 4.2)上传图像,但在将图像转换为数据时,我遇到了这个错误 调用中的额外参数“压缩质量” 代码是使用Alamofire swift 4上传文件,swift,alamofire,Swift,Alamofire,我试图使用Alamofire(swift 4.2)上传图像,但在将图像转换为数据时,我遇到了这个错误 调用中的额外参数“压缩质量” 代码是 import Foundation import SwiftyJSON import Alamofire class APIUpload { class func createPhoto(photo: UIImage, completion: @escaping (_ error:Error?, _ success: Bool)->Void)
import Foundation
import SwiftyJSON
import Alamofire
class APIUpload {
class func createPhoto(photo: UIImage, completion: @escaping (_ error:Error?, _ success: Bool)->Void){
let url = "http://www.fb.test/photo.php"
Alamofire.upload(multipartFormData: { (form: MultipartFormData) in
let data = photo.jpegData(compressionQuality: 1.0){
form.append(data:Data, withName:"photo",fileName:"photo.jpeg",mimeType:"image/jpeg")
}
}, usingThreshold: SessionManager.multipartFormDataEncodingMemoryThreshold, to: url, method: .post, headers: nil) { (result: SessionManager.MultipartFormDataEncodingResult) in
switch result {
case .failure(let error):
print(error)
completion(error, false)
case .success(request: let upload, streamingFromDisk: _, streamFileURL: _):
upload.uploadProgress(closure: { (progress: Progress) in
print(progress)
})
upload.responseJSON(completionHandler: { (response: DataResponse<Any>) in
switch response.result{
case .failure(let error):
print(error)
case .success(let value):
let json = JSON(value)
print(json)
completion(nil, true)
}
})
}
}
}
}
<代码>导入基础
导入快捷JSON
进口阿拉莫菲尔
类APIUpload{
类func createPhoto(照片:UIImage,完成:@escaping(\uerror:error?,\usuccess:Bool)->Void){
让url=”http://www.fb.test/photo.php"
上传(multipartFormData:{(格式:multipartFormData)在
let data=photo.jpegData(压缩质量:1.0){
表单.append(数据:数据,名称:“photo”,文件名:“photo.jpeg”,mimeType:“image/jpeg”)
}
},在中使用reshold:SessionManager.multipartFormDataEncodingMemoryThreshold,to:url,method:.post,headers:nil){(结果:SessionManager.MultipartFormDataEncodingResult)
切换结果{
案例。失败(let错误):
打印(错误)
完成(错误,错误)
案例.成功(请求:let upload,streamingFromDisk:\u,streamFileURL:\u):
upload.uploadProgress(闭包:{(进度:进度)在中)
打印(进度)
})
upload.responseJSON(completionHandler:{(response:DataResponse签名
jpegData
func jpegData(compressionQuality: CGFloat) -> Data?
所以你需要
if let data = photo.jpegData(compressionQuality: 1.0){
form.append(data:data, withName:"photo",fileName:"photo.jpeg",mimeType:"image/jpeg")
}
我怀疑错误消息在这里有点误导。为什么
form.append
在jpegData
末尾的闭包中?