利用AFN上傳多張圖片到服務器


最近服務器做了一個可以支持多張圖片上傳的接口,所以我對應的也找了AFN多圖片上傳的方法

這里我主要是針對UImage數組的傳入,我覺得大部分我都是能獲得UImage來上傳的,然而在網上找到的方法都是要獲得圖片的地址,所以就自己整了這個

#pragma mark - 上傳圖片
- (void)uploadImages:(NSArray <UIImage *>*)images
{
    WEAKSELF;
    AFHTTPSessionManager *mar = [AFHTTPSessionManager manager];
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
   //添加服務器需要你傳的參數 params
    
    NSString *url = nil;
//拼接地址 url
= [NSString stringWithFormat:@"%@%@", BASE_URL, URL_SHOP_IMAGE_UPLOAD]; [mar POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) { //拼接圖片 [images enumerateObjectsUsingBlock:^(UIImage * _Nonnull image, NSUInteger idx, BOOL * _Nonnull stop) { NSData *imageData = UIImagePNGRepresentation(image); if (imageData.length >= 1024 * 1024) {
//因為我們服務器有限制1M以內 所以我超過1M的進行壓縮了 imageData
= [image resetSizeOfImageData:image maxSize:1000]; [formData appendPartWithFileData:imageData name:@"kinta" fileName:@"kinta.jpg" mimeType:@"image/jpg"]; }else{ [formData appendPartWithFileData:imageData name:@"kinta" fileName:@"kinta.png" mimeType:@"image/png"]; } }]; } progress:^(NSProgress * _Nonnull uploadProgress) { // 回到主隊列刷新UI,用戶自定義的進度條 dispatch_async(dispatch_get_main_queue(), ^{ [SVProgressHUD showProgress:1.0 * uploadProgress.completedUnitCount / uploadProgress.totalUnitCount]; }); } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { NSLog(@"上傳成功 %@", responseObject); id datalist = responseObject[@"datalist"]; NSLog(@"%@",datalist); } else { } } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"上傳失敗 %@", error); [SVProgressHUD dismiss]; }]; }

 


免責聲明!

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



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