iOS 提交form表單,上傳圖片


之前不會用,總感覺很難,用后感覺不是太難,本文只是簡單的講一下怎么使用的,

//實例話對象
 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.requestSerializer.timeoutInterval = 20;
    manager.responseSerializer = [[AFHTTPResponseSerializer alloc] init];
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];
    
    //在請求頭里 添加自己需要的參數
    NSString *token = [[YXLoginStatusTool sharedLoginStatus] getTokenId];
    [manager.requestSerializer setValue:token forHTTPHeaderField:@"id"];

//請求地址    
    NSString *URLSTR = @"";
    
    [manager POST:URLSTR parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {

      //轉成data

      self.justimagedata = UIImagePNGRepresentation(pickerImagePic);

//按照表單格式把二進制文件寫入formData表單
        [formData appendPartWithFileData:self.justimagedata name:@"" fileName:@"" mimeType:@"image/png"];
    
        [formData appendPartWithFileData:self.backimagedata name:@"" fileName:@"" mimeType:@"image/png"];
        
        
    } progress:^(NSProgress * _Nonnull uploadProgress) {
        
        YXLog(@"++++%@+++",uploadProgress);
        
    }  success:^(NSURLSessionDataTask *task, id responseObject) {
    
          YXLog(@"responseObject == %@--++--%@----", [self getResponseObjcWithTask:responseObject],[self getRespodHeaderWithTask:task]);
        
        if ([[self getRespodHeaderWithTask:task][@"Status"] isEqualToString:@"1"]) {
           
            //成功
        }else{
            
            [YXAlearMnager ShowAlearViewWith:[self getRespodHeaderWithTask:responseObject][@"errorMsg"] Type:2];
        }
        [YXNetworkHUD dismiss];
        
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        
        [YXNetworkHUD dismiss];
        
         YXLog(@"發送失敗+++++%@++++%@",error,[self getRespodHeaderWithTask:task]);
        
        [YXAlearMnager ShowAlearViewWith:@"頭像更換失敗" Type:2];
    }];
//** 獲取響應頭 */
- (id)getRespodHeaderWithTask:(NSURLSessionTask *)task
{
    NSHTTPURLResponse *respond = (NSHTTPURLResponse *)task.response;
    return respond.allHeaderFields;
}
-(id)getResponseObjcWithTask:(id )responseObect{
    id json;
    NSError *error;
    json = [NSJSONSerialization JSONObjectWithData:responseObect options:0 error:&error];
    if (error) {
        json = [[NSString alloc] initWithData:responseObect encoding:NSUTF8StringEncoding];
    }
    return json;
}

 


免責聲明!

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



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