Ios 使用AlamoFire将图像上载到Uploadcare.com
我不知道如何使用Alamofire将图像上载到。我应该给出图像或二进制数组的路径?我不确定将字符串转换为Ios 使用AlamoFire将图像上载到Uploadcare.com,ios,swift,swift3,xcode8,Ios,Swift,Swift3,Xcode8,我不知道如何使用Alamofire将图像上载到。我应该给出图像或二进制数组的路径?我不确定将字符串转换为数据对象是否正确 func uploadPhoto(imageToUpload : UIImage){ let keyJson = ("<my_api_key>").data(using: .utf8)! let uploadStore = "1".data(using: .utf8) let imageData = UIImag
数据
对象是否正确
func uploadPhoto(imageToUpload : UIImage){
let keyJson = ("<my_api_key>").data(using: .utf8)!
let uploadStore = "1".data(using: .utf8)
let imageData = UIImageJPEGRepresentation(imageToUpload, 0.2)
Alamofire.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(keyJson, withName: "UPLOADCARE_PUB_KEY")
multipartFormData.append(uploadStore!, withName: "UPLOADCARE_STORE")
multipartFormData.append(imageData!, withName: "file")
},
to: "https://upload.uploadcare.com/base/",
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
debugPrint(response)
}
case .failure(let encodingError):
debugPrint(encodingError)
}
}
)
}
func上传照片(imageToUpload:UIImage){
让keyJson=(“”)。数据(使用:.utf8)!
让uploadStore=“1”。数据(使用:.utf8)
设imageData=UIImageJPEG表示法(imageToUpload,0.2)
阿拉莫菲尔上传(
multipartFormData:{multipartFormData in
append(keyJson,名称为:“UPLOADCARE\u PUB\u KEY”)
multipartFormData.append(uploadStore!,名称为:“UPLOADCARE\u STORE”)
multipartFormData.append(imageData!,名称为“file”)
},
至:https://upload.uploadcare.com/base/",
encodingCompletion:{encodingResult in
开关编码结果{
成功案例(让我们上传,,u):
upload.responseJSON{中的响应
调试打印(响应)
}
案例失败(let encodingError):
调试打印(编码错误)
}
}
)
}
结果:
[Response]: <NSHTTPURLResponse: 0x6100002390a0> { URL: https://upload.uploadcare.com/base/ } { status code: 400, headers {
"Access-Control-Allow-Credentials" = true;
"Access-Control-Allow-Headers" = "X-PINGOTHER, DNT";
"Access-Control-Allow-Methods" = "POST, OPTIONS";
"Access-Control-Allow-Origin" = "*";
"Access-Control-Max-Age" = 1;
Connection = "keep-alive";
"Content-Length" = 31;
"Content-Type" = "text/html; charset=utf-8";
Date = "Sun, 09 Oct 2016 18:41:45 GMT";
Server = nginx;
"X-Frame-Options" = DENY;
} }
[Response]:{URL:https://upload.uploadcare.com/base/ }{状态代码:400,标题{
“访问控制允许凭据”=真;
“访问控制允许标头”=“X-PINGOTHER,DNT”;
“访问控制允许方法”=“POST,选项”;
“访问控制允许来源”=“*”;
“访问控制最大年龄”=1;
连接=“保持活动”;
“内容长度”=31;
“内容类型”=“文本/html;字符集=utf-8”;
日期=“2016年10月9日星期日18:41:45 GMT”;
服务器=nginx;
“X帧选项”=拒绝;
} }
正如我所看到的,有两种方法可以使用Alamofire实现。您可以使用获取文件URL的函数,如public func append(\fileURL:URL,withName:String)
并为它们提供文件的URL。或者,您可以将图像转换为数据,并使用诸如public func append(u-data:data,withName:String)之类的函数发送图像。
您可以检查响应正文吗?Uploadcare服务器尝试解释请求中缺少或不正确的内容: