Home | 简体中文 | 繁体中文 | 杂文 | 打赏(Donations) | 云栖社区 | OSChina 博客 | Facebook | Linkedin | 知乎专栏 | Github | Search | About

3.4. 上传文件

3.4.1. appendPartWithFileData 方式

			
- (void)uploadImage{
    NSURL *baseURL = [NSURL URLWithString:@"http://api.netkiller.cn:8080"];
    AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL];
    manager.responseSerializer = [AFJSONResponseSerializer serializer];
    manager.requestSerializer = [AFHTTPRequestSerializer serializer];
    [manager.requestSerializer setAuthorizationHeaderFieldWithCredential:self.credential];
    
    [manager POST:@"/upload/single" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
                      
            NSURL *fileUrl = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"png"];
            NSData *imageData = [NSData dataWithContentsOfURL:fileUrl];
            [formData appendPartWithFileData:imageData name:@"file" fileName:@"test.png" mimeType:@"image/png"];
        
       }
       progress:nil
          success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
              NSLog(@"Success: %@", responseObject);
          }
          failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
              NSLog(@"Failure: %@ %@", error,task);
          }];
    
}		
			
			

3.4.2. appendPartWithFileURL

			
- (void)uploadImage{
    NSURL *baseURL = [NSURL URLWithString:@"http://api.netkiller.cn:8080"];
    AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL];
    manager.responseSerializer = [AFJSONResponseSerializer serializer];
    manager.requestSerializer = [AFHTTPRequestSerializer serializer];
    [manager.requestSerializer setAuthorizationHeaderFieldWithCredential:self.credential];
    
    [manager POST:@"/upload/single" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
                      
           NSURL *fileUrl = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"png"];
           [formData appendPartWithFileURL:fileUrl name:@"file"fileName:@"test.png" mimeType:@"image/png" error:nil];
        
       }
         progress:nil
          success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
              NSLog(@"Success: %@", responseObject);
          }
          failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
              NSLog(@"Failure: %@ %@", error,task);
          }];
    
}			
			
			

3.4.3. 上传 MP4

[提示]提示
注意 NSBundle 不支持视频文件:

NSURL *fileUrl = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"png"];

			
- (void)uploadImage{
    NSURL *baseURL = [NSURL URLWithString:@"http://api.netkiller.cn:8080"];
    AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL];
    manager.responseSerializer = [AFJSONResponseSerializer serializer];
    manager.requestSerializer = [AFHTTPRequestSerializer serializer];
    [manager.requestSerializer setAuthorizationHeaderFieldWithCredential:self.credential];
    
    [manager POST:@"/upload/single" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
            NSURL *filePath = [NSURL fileURLWithPath:@"/Users/neo/Downloads/1536900372401089.mp4"];
            [formData appendPartWithFileURL:filePath name:@"file" fileName:@"test.mp4" mimeType:@"video/mp4" error:nil];
       }
         progress:nil
          success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
              NSLog(@"Success: %@", responseObject);
          }
          failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
              NSLog(@"Failure: %@ %@", error,task);
          }];
}