【发布时间】:2020-07-10 04:30:12
【问题描述】:
我已经从旧版本升级了 pod Alamofire 5.0,
“MultipartFormData 的 API 发生了变化,创建和上传 MultipartFormData 的顶级上传方法已更新以匹配其他请求 API,因此不再需要处理多部分编码的 Result。”
我写了下面的函数,我无法在新版本中重写这个函数,有人可以在这方面帮助我吗?
注意: 我认为我需要更改“Alamofire.upload”->“AF.upload”,但它不足以解决问题,
func uploadPhoto(token:String, userID: String, data: Data, dataUrl: URL) -> Observable<AnyObject?> {
return Observable<AnyObject?>.create({ (observer) -> Disposable in
print(userID);
print(data);
do {
let urlRequest = try URLRequest(url: ResourcePath.Upload.path + "/\(userID)" , method: .post)
Alamofire.upload(multipartFormData: { (multipartData) in
multipartData.append(data, withName: "Filedata", fileName: dataUrl.absoluteURL.lastPathComponent, mimeType: "image/jpeg")
//append(dataUrl, withName: "Filedata", fileName: dataUrl.absoluteString, mimeType: "image/png")
}, with: urlRequest, encodingCompletion: { (result) in
switch result {
case .success(let value, let t1, let t2) :
print(value)
value.responseData(completionHandler: { (dataResponse) in
switch (dataResponse.result) {
case .success(let value) :
print(value)
do {
let jsonData = JSON(dictData)
print("Upload photo response: \(jsonData)")
observer.onNext(jsonData as AnyObject?)
observer.onCompleted()
}
catch {
print(error)
observer.onError(error)
return
}
break
case .failure(let error) :
print(error)
observer.onError(error)
break
}
})
break
case .failure(let error) :
print(error)
observer.onError(error)
break
default:
break
}
})
} catch {
print(error)
observer.onError(error)
}
return Disposables.create {
print("disposed")
}
})
}
【问题讨论】:
-
您希望有人重写您的代码而不自己尝试吗?我认为这不是一个好主意。
-
你试过用 AF.upload 代替 Alamofire.upload 吗?
-
我不知道如何进行更改
-
Af.upload 不起作用
-
我收到一个错误“表达式类型 'UploadRequest' 在没有更多上下文的情况下不明确”