gpt4 book ai didi

ios - 使用 Alamofire 和 Swift 4 上传图片时出现问题

转载 作者:搜寻专家 更新时间:2023-10-31 22:04:38 24 4
gpt4 key购买 nike

我正在尝试通过我的应用程序将图片从图库上传到服务器。这是我的代码:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

if let userID:String = userDefaults.string(forKey: "userID"){

let URL: String = "HERE_IS_URL"
let chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage

let imageData = UIImageJPEGRepresentation(chosenImage, 1.0)
dismiss(animated: true, completion: nil)

userProfilePicture.image = chosenImage
userProfilePicture.contentMode = .scaleToFill


let head: HTTPHeaders = [
"Content-type": "multipart/form-data",
"key": "key"
]

self.alamoManager?.upload(multipartFormData: { (multipartFormData) in

if let data = imageData{
multipartFormData.append(data, withName: "image", fileName: "image.png", mimeType: "image/png")
}

}, usingThreshold: UInt64.init(), to: URL, method: .get, headers: head) { (result) in
switch result{
case .success(let upload, _, _):
upload.responseJSON { response in
print("response: \(response)")
if let err = response.error{
print(err)
return
}
}
case .failure(let error):
print("Error in upload: \(error.localizedDescription)")

}
}

}

}

从图库中选择图像后,我在 ImageView 中设置图像。 Api 响应是这样的:

response: FAILURE: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x608000245760 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=MY_URL, NSErrorFailingURLKey=MY_URL, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.}

我正在使用 Swift 4、Xcode 9。请告诉我我做错了什么?

最佳答案

这是我使用 alamofire(swift 4) 上传图片的工作代码。

  func uploadImage(userImage : UIImage?,withCompletionHandler:@escaping (_ result: Any) -> Void){

Alamofire.upload(
multipartFormData: { MultipartFormData in
if((userImage) != nil){
MultipartFormData.append(UIImageJPEGRepresentation(userImage!, 0.025)!, withName: "your_tag", fileName: "imageNew.jpeg", mimeType: "image/jpeg")
}

}, to: "your_url_here") { (result) in

switch result {
case .success(let upload, _, _):

upload.responseJSON { response in
// getting success
}

case .failure(let encodingError): break
// getting error
}


}
}

A.F.A.I.K.应该是三种可能。

1) 图片类型可能不匹配(例如,后端应该可以接受扩展名)。

2) 图片大小很重要。

3) 您需要发送带有正确 key_tag 的图片。

关于ios - 使用 Alamofire 和 Swift 4 上传图片时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48902787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com