iOS开发(OC)——AFNetworking之文件上传

//urlString服务器地址
//param 字典类型,后面跟你要传的参数及其值
例如:NSDictionary *param = @{@”time”:dateString,@”token”:tokenString,@”userid”:[userDefault objectForKey:userid],@”finger_type”:[NSString stringWithFormat:@”%d”,(int)selectButton.tag-10+1],@”audio”:fileData};

//下面的方法中如果需要回调的就自己写block吧,我怕我写了有些人看不懂
+(void)postAudioWithUrl:(NSString )urlString andParam:(NSDictionary )param keyName:(NSString )key fileName:(NSString )file data:(NSData *)fileData
{
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@”POST” URLString:urlString parameters:param constructingBodyWithBlock:^(id formData) {
//fileData二进制流,例如NSData *fileData=[NSData dataWithContentsOfFile:filePath];//filePath你的文件路径
//key服务器地址url上二进制流的关键字字段
//file,自定义的文件名
//@”application/octet-stream”文件的类型,当你不知道时就默认用这个
[formData appendPartWithFileData:fileData name:key fileName:file mimeType:@”application/octet-stream”];

} error:nil];

AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

manager.responseSerializer = [AFHTTPResponseSerializer serializer];

NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithStreamedRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {

    //进度条
    CGFloat progress=(CGFloat)downloadProgress.completedUnitCount/(CGFloat)downloadProgress.totalUnitCount;//运算符/,当两边都是整型时,得出的结果也是整型,所以要进行类型转换


} completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
    //失败
    if (error) {
        NSDictionary *info = [NSDictionary dictionaryWithObjectsAndKeys:error.debugDescription,@"info", nil];


    } else {//成功

        NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];

    }

}];


[uploadTask resume];//注意不要漏

}

iOS开发交流群:301058503

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值