最近在弄头像上传,然后遇到了一些坑,费了不少心思,花了不少冤枉的功夫,其中最重要的是与后台的交互,
在网上一搜索AFN上传图片,一大堆:
`NSMutableDictionary *params = [NSMutableDictionary dictionary]; params[@"image"] = newImageData; params[@"fileName"] = fileName; params[@"oldFile"] = self.users.photo; params[@"userid"] = @(self.users.ID);
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
[SVProgressHUD show];
[SVProgressHUD setDefaultStyle:SVProgressHUDStyleDark];
[manager POST:urlString parameters:params constructingBodyWithBlock:^(id _Nonnull formData) {
// 在这个block中设置需要上传的文件
[formData appendPartWithFileData:newImageData name:@"image" fileName:@"test.png" mimeType:@"image/png"];
} progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
if ([[responseObject objectForKey:@"code"] intValue] != 200) {
[SVProgressHUD showErrorWithStatus:@"上传头像失败"];
} else {
[SVProgressHUD showSuccessWithStatus:@"上传头像成功"];
!self.selectPhotpCompleteBlock ? : self.selectPhotpCompleteBlock(newImageData);
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
TbLog(@"%@",[error localizedDescription]);
[SVProgressHUD showErrorWithStatus:[error localizedDescription]];
}];·
其中·[formData appendPartWithFileData:newImageData name:@"image" fileName:@"test.png" mimeType:@"image/png"];
这一句非常重要,拼接上传图片的post请求的请求头信息,fileName,文件名称,随便写,mineType:标示上传的图片类型,规定的
其中name很重要,很重要,是后台上传的key,这个是后台规定的,要跟后台协商,不同的后台,可能写图片上传的key,就不一样,这个要问后台了,我就是没有跟后台协商,一直搞不定上传图片,最后搞了好久才发现了,这个问题,浪费了不少时间`
2253

被折叠的 条评论
为什么被折叠?



