Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.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/19.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 只有图像不是';t在Alamofire多部分/表单数据上传请求中发送_Ios_Swift_Alamofire - Fatal编程技术网

Ios 只有图像不是';t在Alamofire多部分/表单数据上传请求中发送

Ios 只有图像不是';t在Alamofire多部分/表单数据上传请求中发送,ios,swift,alamofire,Ios,Swift,Alamofire,我有下面的Alamofire请求,将一个简单的用户上传到服务器,其中包含电子邮件、姓名等数据,最后是一个化身图像 Alamofire.upload( multipartFormData: { multipartFormData in multipartFormData.append(self.selectedEmail.data(using: .utf8)!, withName: "email")

我有下面的Alamofire请求,将一个简单的用户上传到服务器,其中包含电子邮件、姓名等数据,最后是一个化身图像

Alamofire.upload(
                multipartFormData: { multipartFormData in
                    multipartFormData.append(self.selectedEmail.data(using: .utf8)!, withName: "email")
                    multipartFormData.append( self.selectedFirstName.data(using: .utf8)!, withName: "first_name")
                    multipartFormData.append(self.selectedLastName.data(using: .utf8)!, withName: "last_name")
                    if self.selectedGender == "Male" {
                        multipartFormData.append("0".data(using: .utf8)!, withName: "gender")
                    } else {
                        multipartFormData.append("1".data(using: .utf8)!, withName: "gender")
                    }
                    let userId = String(describing: self.matchmakerModels?.filter({ m in m.email == self.selectedMatchmakerEmail})[0].id)
                    multipartFormData.append(userId.data(using: .utf8)!, withName: "user_id")
                    if let data = UIImageJPEGRepresentation(self.selectedImage, 1) {
                        multipartFormData.append(data, withName: "avatar", fileName: "avatar.jpeg", mimeType: "image/jpeg")
                    }
                },
                to: Constants.BASE_URL + Constants.API_VERSION + "single",
                method: .post,
                headers: ["Authorization": "Bearer \(oauthKey)", "Accept": "application/json"],
                encodingCompletion: { encodingResult in
                    switch encodingResult {
                        case .success(request: let upload, _, _):
                            print("===========CURL REQUEST===========")
                            debugPrint(upload)
                            upload.responseJSON { response in
                                print("===========RESPONSE=============")
                                debugPrint(response)
                                print("created single")
                                self.addSingleBtn.isEnabled = true
                            }
                        case .failure(let encodingError):
                            do {
                                print(encodingError)
                                print("failed to add single")
                            }
                    }
                }
            )
由于某种原因,代码没有像我预期的那样工作。字符串字段被正确地传递到后端,但映像没有。我无法访问后端,但我知道它可以正确地与邮递员请求一起工作

邮递员请求的卷曲如下所示

curl -X POST \
  http://some.net/url/to/post/the/data/model \
  -H 'accept: application/json' \
  -H 'authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjZjNjc0ODM1MDMzNGI1M2UyMmM0YTAyYmIxNGYwYTZlNWIxMWQ5OTE5YzVkYTQ4NTZkMDQ5YzU3MGJhYjVkNDliZjY4MGIzMGNmMjgyNmQxIn0.eyJhdWQiOiIyIiwianRpIjoiNmM2NzQ4MzUwMzM0YjUzZTIyYzRhMDJiYjE0ZjBhNmU1YjExZDk5MTljNWRhNDg1NmQwNDljNTcwYmFiNWQ0OWJmNjgwYjMwY2YyODI2ZDEiLCJpYXQiOjE1MTAwNTA3MDYsIm5iZiI6MTUxMDA1MDcwNiwiZXhwIjoxNTQxNTg2NzA2LCJzdWIiOiIxIiwic2NvcGVzIjpbXX0.k1fFhAX_JU49aqrzXZ80dL1N8LtQJMhmmfSmocwSFY7-U03S70UlCh7Ig8od9VXvOCbr95Ld-crjBOYRxOQON5aZM8gDydapKz37Ln4RhQF4GI17GOYOwkADccpdjwZQSFZzbkSMTaAWKpeYGFrPBego4DTcYPpKA08ylXEhuPgq5Dq9nK6MSOOUI9rJtiqj8dHkyWsIvuGb9y43_Qr4RSwD6VDIsfCabuqSmWHROvJXEwl-3Rpwi6rLQTPg5Lz0mEHTSMuZvpVTVLo0HOplMgO3OZUJ8GB7Km1zgUR7c8GNnveU-_BpTnsgnFOcFdLlXuki31pK-hjSJnww4vBcRDHLqw2DbqdlOmYn5Pamgq__ooIsC1nkk3j3njj6W8EGXLM_oUjXOlY5BQlV_y7F3ZzBZ7PVLV2A_apP5ufQWM-aLX5LyuKc9gyyY6eb19nRbI2ucDw_kLmO-afEpoK6sc-ZDByff_vTZjT9p1qam4WBvAcpefPJdw83yYjud89eYC82SdIRCu9rCsrXHDe3imgiX8JG1AyVxaaM4Iq-PL3DrUJle5eqY4UXYXxhWGn2aycamrXFAbQ8wU83PSJ34cqU9agrmPnYoP78tumH_q_IAN9A_owYaMKW4-v-LEPhUPIj33pet026y3Eb8C0rNp15mkwmt-wTP0IRBeuAN0M' \
  -H 'cache-control: no-cache' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -H 'postman-token: e66477f1-01c3-26cc-b054-09780aab9b11' \
  -F email=foo@boo.com \
  -F first_name=Foo \
  -F last_name=Boo \
  -F gender=1 \
  -F user_id=1 \
  -F 'avatar=@[object Object]'
有人能告诉我这两个要求有什么不同吗

编辑。这些是由
debugPrint(upload)
debugPring(response)

=============卷曲请求===========
$curl-v\
-X柱\
-H“内容类型:多部分/表单数据;边界=alamofire.boundary.b2cda80a0a64ceb1”\
-H“接受编码:gzip;q=1.0,压缩;q=0.5”\
-H“接受语言:pl;q=1.0”\
-H"授权:持票人该项目是一个非常重要的项目。该项目是一个非常重要的项目2.本文研究了一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究的研究方法,一种新的技术,将在未来未来未来未来的未来的未来的未来的未来的未来的未来的未来的未来的未来的未来的未来的未来的六六六六六六六年六六六年六六年六年六六六六年六年六年六年六年六年六年六年六年六年六年六年六年六年六年六年六年六年六年六年六年六年六年六年六年六年六年六个六个ZGPBTLPQJF7USFYR26LOEGQLRGS2VBUTVYHC4HJSWBNAWLRM第二部分是一本书的内容。一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的内容是一本书的一本书的内容是一本书的内容是一本书的一本书的内容是一本书的内容,一本书的内容是一本书的一本书的一本书的内容,一本书的内容,一ZPNOBKOXTVCMLG3E9A2DUT4ACO5P7QEHanEhGo1tA14yg9i6RtrpCaZM“\
-H“用户代理:ios应用程序/1.0(com.coderspeak.matchmaking.ios-app;版本:1;ios 9.3.5)Alamofire/4.5.1”\
-H“接受:应用程序/json”\
"http://some.net/url/to/post/the/data/model"
=============响应=============
[请求]:邮寄http://some.net/url/to/post/the/data/model
[答复]:{URL:http://some.net/url/to/post/the/data/model }{状态代码:200,标题{
“缓存控制”=“无缓存,专用”;
连接=“保持活动”;
“内容长度”=762;
“内容类型”=“应用程序/json”;
日期=“2017年12月15日星期五14:43:26 GMT”;
“保持活动”=“超时=5,最大=100”;
Server=“Apache/2.4.18(Ubuntu)”;
变更=授权;
“X-费率限制-限制”=60;
“X-税率限制-剩余”=52;
} }
[数据]:762字节
[结果]:成功:{
单个={
已批准=0;
email=Cfhgg;
“姓氏”=Gdggdgjg;
“相册”={
阿凡达=”;
“创建时间”=“2017-12-15 14:43:28”;
id=157;
“照片1=”;
“照片2=”;
“照片3=”;
“更新时间”=“2017-12-15 14:43:28”;
};
};
}

我确实从返回的json模型中删除了几行,因为它没有添加任何内容,只会使问题变得混乱。

结果是图像数据太大:) 需要进一步压缩

let data = UIImageJPEGRepresentation(self.selectedImage, 0.1) 

请在这一行之后打印用户id,让userId=String(描述:self.matchmakerModels?.filter({m in m.email==self.selectedMatchmakerMail})[0].id)正确吗?请求没有失败吗?请打印您的请求和响应吗?@ArthurSahakyan这是一个选项(2),这就是它应该是的。@mihatel否。请求成功。我将把它添加到问题中。在postman user_id=1,而不是user_id=Optional(1)中,即使代码中缺少另一个,它也将始终失败,但我发现您的代码与Curl相同,请更改为let userId=String(self.matchmakerModels?.filter({m in m.email==self.selectedMatchMakerMail})[0].id!)
let data = UIImageJPEGRepresentation(self.selectedImage, 0.1)