ios 使用AFN上傳圖片到服務器


 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

 manager.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"application/json", @"text/html",@"text/json", @"text/javascript", nil];

        //可以多張圖片也可以是單張,如果是多張而且后台開了異步上傳的話在這兒直接做for循環要保證上傳的時候fileName不同。    

NSString *urlString = [NSString stringWithFormat:@"%@%@",DEBUG_URL,@"mobile/explorer"];

            [manager POST:urlString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

                NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

                formatter.dateFormat = @"yyyyMMddHHmmss";  

                NSString *str = [formatter stringFromDate:[NSDate date]];

//上面的這三句就是獲取當前時間的,目的就是讓上傳的名字不同。

              // for (int i =1; i<=8; i++) {這里注釋掉的就是如果你要多張上傳的時候用的

                     NSData *data = UIImageJPEGRepresentation(你的圖片UIimage,0.7);

                     NSString *fileName = [NSString stringWithFormat:@"%@.jpg", str];

                     [formData appendPartWithFileData:data name:@"mf" fileName:fileName mimeType:@"image/jpg"];

               //}

            } success:^(AFHTTPRequestOperation *operation, id responseObject) {

//這里就是處理上傳成功后的返回等操作,大家可以不用看我的。我在這兒是把成功后,后台返回給我的圖片id返回給我的主控制器

//                CGLog(@"Success: %@", responseObject);

                if ([responseObject[@"status"] integerValue]==0) {

                    [SVProgressHUD showSuccessWithStatus:@"上傳成功。"];

                    //店鋪圖片多張

                    if (isMore==YES) {

                        [imageArr addObject:[NSString stringWithFormat:@"%@",responseObject[@"data"][@"s_url"]]];

                        if (imageArr.count == arr.count) {

                            NSString *imagesId = [imageArr componentsJoinedByString:@","];

//                            CGLog(@"%@",imagesId);

                            if (self.delegate && [self.delegate respondsToSelector:@selector(postMoreImageId:)]) {

                                [self.delegate postMoreImageId:imagesId];

                            }

                        }

                       //門頭照

                    }else{

                        if (self.delegate && [self.delegate respondsToSelector:@selector(postImageId:)]) {

                            [self.delegate postImageId:[NSString stringWithFormat:@"[%@]",responseObject[@"data"][@"id"]]];

                        }

                    }

                }else{

                    [SVProgressHUD showErrorWithStatus:@"上傳失敗。"];

                }

            } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

                //上傳失敗在這兒處理

//                CGLog(@"Error: %@", error);

                [SVProgressHUD showErrorWithStatus:@"上傳失敗,請確認網絡是否連接。"];

            }];

 另外有時候上傳服務器后,照片要在PC上展示,會出現照片在PC上顯示是旋轉了90度的,那C哥(我的自稱)就搜了一個現成的方法可供大家參考,已經試過了管用:http://www.cnblogs.com/caodedi-88/p/6256347.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM