AFN上传语音

NSURL *url = [[NSURL alloc] initFileURLWithPath:path];
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    [manager.requestSerializer setValue:@"multipart/form-data" forHTTPHeaderField:@"Content-Type"];
    
    [manager.requestSerializer setValue:@"" forHTTPHeaderField:@"User-Agent"];
    //2.上传文件,在这里我们还要求传别的参数,用字典保存一下,不需要的童鞋可以省略此步骤
    
    NSString *urlString = UpLoadUrl;

    //    //post请求
    [manager POST:urlString parameters:nil constructingBodyWithBlock:^(id  _Nonnull formData) {
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        formatter.dateFormat   = @"yyyyMMddHHmmss";
        NSString *str = [formatter stringFromDate:[NSDate date]];
        NSString *fileName = [NSString stringWithFormat:@"%@.mp3", str];
        /*
         此方法参数
         1. 要上传的[二进制数据]
         2. 我这里的imgFile是对应后台给你url里面的图片参数,别瞎带。
         3. 要保存在服务器上的[文件名]
         4. 上传文件的[mimeType]
         */
        [formData appendPartWithFileURL:url name:@"mfile"  fileName:fileName mimeType:@"application/octet-stream" error:nil];
    } progress:^(NSProgress * _Nonnull uploadProgress) {
        float progress =  1.0 * uploadProgress.completedUnitCount/uploadProgress.totalUnitCount;
        NSLog(@"上传进度%f",progress);
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        NSString *mediaID = [responseObject objectForKey:@"mediaid"];
        NSString* urlStr= [NSString stringWithFormat:@"%@/%@",DownLoadUrl,mediaID];
        
        if (your.length <36) {
            [vc sendMessageWithContent:urlStr localUrl:path type:type realTime:timeStamp];
        }else{
            JFGroupChatController *groupVC = [[JFGroupChatController alloc]init];
            [groupVC sendMessageWithContent:urlStr localUrl:path type:type realTime:timeStamp];
        }
    }
          failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
              NSLog(@"请求失败:%@",error);
    }];

你可能感兴趣的:(AFN上传语音)