Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用AlamoFire将图像上载到Uploadcare.com_Ios_Swift_Swift3_Xcode8 - Fatal编程技术网

Ios 使用AlamoFire将图像上载到Uploadcare.com

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

我不知道如何使用Alamofire将图像上载到。我应该给出图像或二进制数组的路径?我不确定将字符串转换为
数据
对象是否正确

 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服务器尝试解释请求中缺少或不正确的内容: