美文网首页
iOS form-data上传文件

iOS form-data上传文件

作者: 可乐小子 | 来源:发表于2020-09-24 10:57 被阅读0次
  • (void)post_uploadFile_WithUrl:(NSString *)path data:(id)data success:(void(^)(NSDictionary *dict))successBlock error:(void(^)(NSError * _Nonnull error))errorBlock{

    NSDictionary *params = (NSDictionary *)data;
    NSString *urlString = [NSString stringWithFormat:@"%@%@",Chat_APP_SERVER_ADDRESS,path];
    NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:urlString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    //参数name:是后台给你的图片在服务器上字段名;
    //参数fileNmae:自己起得一个名字,
    //参数mimeType:这个是决定于后来接收什么类型的图片,接收的时png就用image/png ,接收的时jpeg就用image/jpeg

    NSError*parseError =nil;

    NSData*jsonData = [NSJSONSerialization  dataWithJSONObject:data  options:NSJSONWritingPrettyPrinted error:&parseError];

// NSString*str =[[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];

// NSLog(@"JSON: %@", str);

    //NSString * dataString  =[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    
    [formData appendPartWithFileData:jsonData name:@"file" fileName:@"Filedate.png" mimeType:@"image/png"];
    
} error:nil];



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

//设置服务器返回内容的接受格式
AFHTTPResponseSerializer *responseSer = [AFHTTPResponseSerializer serializer];

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

manager.responseSerializer = responseSer;

NSProgress *progress = nil;

NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithStreamedRequest:request progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
    
    if (error) {
        NSLog(@"Error: %@", error);

    } else {
        
        NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
        NSData *jsonData = [str dataUsingEncoding:NSUTF8StringEncoding];
        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];
        NSLog(@"dic====%@", dic);
        successBlock(dic);
        
    }
    
}];

[uploadTask resume];

}

相关文章

网友评论

      本文标题:iOS form-data上传文件

      本文链接:https://www.haomeiwen.com/subject/fojzyktx.html