2017-05-23 1 views
0

Bitte gut mein Code, den ich geschrieben habe, um ein Video auf den Server mit HTTP-Post-Methode zu posten.Video-Posting auf Server über HTTP-Post-Methode in iOS

Der Server getroffen wird, aber die Reaktion zeigt null Ich verstehe nicht, was schief gegangen ist

- (IBAction)choose:(id)sender { 

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 

    UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 

    picker.delegate = self; 

    picker.allowsEditing = YES; 

    picker.sourceType = UIImagePickerControllerSourceTypeCamera; 

    picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil]; 

    [self presentViewController:picker animated:YES completion:NULL]; 

} 



     - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 


NSString *type = [info objectForKey:UIImagePickerControllerMediaType]; 


    if ([type isEqualToString:(NSString *)kUTTypeVideo] || 

    [type isEqualToString:(NSString *)kUTTypeMovie]) 

    { 


    self.videoURL = [info objectForKey:UIImagePickerControllerMediaURL]; 

} 

[picker dismissViewControllerAnimated:YES completion:NULL]; 
} 

- (IBAction)upload:(id)sender { 

    //NSString * str = @"content"; 

    // [str stringByAppendingString:self.url]; 

NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://mobile.supportservice.co.in/bbgapp.asmx/Stream" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 

    //NSString * str = [[NSBundle mainBundle] pathForResource:@"amyVideo" ofType:@"png"]; 

    NSLog(@"------------------>%@",self.videoURL); 


    [formData appendPartWithFileURL:[NSURL fileURLWithPath:self.videoURL] name:@"file" fileName:@"myVideo.m4v" mimeType:@"mp4/m4v" error:nil]; 

} error:nil]; 

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

uploadTask = [manager 

       uploadTaskWithStreamedRequest:request 

       progress:^(NSProgress * _Nonnull uploadProgress) { 

        // This is not called back on the main queue. 

        // You are responsible for dispatching to the main queue for UI updates 
       dispatch_async(dispatch_get_main_queue(), ^{ 

         //Update the progress view 

         [self.progressView setProgress:uploadProgress.fractionCompleted]; 

        }); 

       } 

       completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) { 

        if (error) { 

         NSLog(@"Error: %@", error); 

        } else { 


    NSLog(@"----------------------> %@ %@", response, responseObject); 

        } 

       }]; 

[uploadTask resume]; 
} 
    @end 

Hier mein output

Antwort

0

besten Weg zum Upload/Download-Video oder Bild verwendet wird hätte AFNetworking Rahmen. Zum Hochladen von Videos verwenden Sie den unten stehenden Code.

NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" 
URLString:@"http://exampleurl.com/upload" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
[formData appendPartWithFileData:videoData name:@"file" fileName:@"filename.mov" mimeType:@"video/quicktime"]; 
} error:nil]; 

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

NSURLSessionUploadTask *uploadTask; 
uploadTask = [manager 
       uploadTaskWithStreamedRequest:request 
       progress:^(NSProgress * _Nonnull uploadProgress) { 
        // This is not called back on the main queue. 
        // You are responsible for dispatching to the main queue for UI updates 
        dispatch_async(dispatch_get_main_queue(), ^{ 
         //Update the progress view 
         [progressView setProgress:uploadProgress.fractionCompleted]; 
        }); 
       } 
       completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) { 
        if (error) { 
         NSLog(@"Error: %@", error); 
        } else { 
         NSLog(@"%@ %@", response, responseObject); 
        } 
       }]; 

[uploadTask resume]; 
+0

Es funktionierte für mich mit einer kleinen Veränderung, danke! –

Verwandte Themen