通过http上传视频

马克思主义

所以这是我的尝试:

我首先创建一个“图像选择器”,使我可以拍摄视频:

- (IBAction)takeVideo:(UIButton *)sender {
    
    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 {
    
    self.movieURL = info[UIImagePickerControllerMediaURL];
        [picker dismissViewControllerAnimated:YES completion:NULL];
    
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
    
    [picker dismissViewControllerAnimated:YES completion:NULL];
    
}
- (void)viewDidAppear:(BOOL)animated {
    
    self.movieController = [[MPMoviePlayerController alloc] init];
    self.movieController.controlStyle = MPMovieControlStyleNone;
    [self.movieController setContentURL:self.movieURL];
    [self.movieController.view setFrame:CGRectMake (15, 125, 292, 390)];
    self.movieController.view.backgroundColor = [UIColor clearColor];
    [self.view addSubview:self.movieController.view];
    [self.movieController play];
    
    NSString *myString = [self.movieURL absoluteString];
    //THE DATA IS RETURNING 0 :
    NSData *videoData = [NSData dataWithContentsOfFile:myString];
    NSLog(@"%@",[NSByteCountFormatter stringFromByteCount:videoData.length countStyle:NSByteCountFormatterCountStyleFile]);
    [self setImageDataToSend:videoData];

}

- (void)moviePlayBackDidFinish:(NSNotification *)notification {
    
    [[NSNotificationCenter defaultCenter]removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
    
    [self.movieController stop];
    [self.movieController.view removeFromSuperview];
    self.movieController = nil;
    
}

我没有从URL接收任何数据吗?

然后,我尝试将其上传到我的网站:

-(IBAction)uploadvideotowebsite:(id)sender{
    //you can use any string instead "com.mycompany.myqueue"
    dispatch_queue_t backgroundQueue = dispatch_queue_create("com.mcompany.myqueue", 0);
    //turn on
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
    dispatch_async(backgroundQueue, ^{
    
    
    PFUser *user = [PFUser currentUser];
    NSString * url = [NSString stringWithFormat:@"http://******.co.uk/****/imageupload.php"];
    NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
    [request setHTTPMethod:@"POST"];
    NSString *boundary = @"---------------------------14737809831466499882746641449";
    NSMutableData *body = [[NSMutableData alloc]init];
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    NSString *String = @"Content-Disposition: form-data; name=\"image\"; filename=\"";
    NSString *String2 = @"video";
    NSString *String3 = @".MOV\"\r\n";
    NSString *connection1 = [String stringByAppendingString: String2];
    NSString *done = [connection1 stringByAppendingString: String3];
    [body appendData:[[NSString stringWithFormat:done] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Type: audio/basic\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:_imageDataToSend];
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [request setHTTPBody:body];
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
    [request addValue:contentType forHTTPHeaderField: @"Content-Type"];
    
    //Send the Request
    NSData* returnData = [NSURLConnection sendSynchronousRequest: request
                                               returningResponse: nil error: nil];
    //serialize to JSON
    if (!returnData){
        return; // or handle no connection error here
    }else{
        NSDictionary *result = [NSJSONSerialization JSONObjectWithData:returnData options:NSJSONReadingMutableContainers error:nil];
        
        //parsing JSON
        bool success = [result[@"success"] boolValue];
        if(success){
            NSLog(@"Success=%@",result[@"msg"]);
            //[self performSegueWithIdentifier:@"toshow" sender:self];
        }else{
            NSLog(@"Fail=%@",result[@"msg"]);
        }
    }
    dispatch_async(dispatch_get_main_queue(), ^{
        //turn off
        [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
    });
});


}

我没有收到任何错误。但是我在我的网站上收到了一个大小为0kb的文件。

谁能解释为什么我没有从视频中获取任何数据?

蜂蜜

谁能解释为什么我没有从视频中获取任何数据?

当然,这是您的错误:

 NSString *myString = [self.movieURL absoluteString];

应该是路径

NSString *myString = [self.movieURL path];
NSData *videoData = [NSData dataWithContentsOfFile:myString];
NSLog(@"%@",[NSByteCountFormatter stringFromByteCount:videoData.length countStyle:NSByteCountFormatterCountStyleFile]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过HTTP请求将视频上传到YouTube?

来自分类Dev

通过Http将视频文件从Unity上传到Python

来自分类Dev

通过YouTube API上传视频

来自分类Dev

通过HttpWebRequest在YouTube中上传视频

来自分类Dev

如何通过VK API上传视频

来自分类Dev

使用HTTP API在Twitter上上传视频

来自分类Dev

通过HTTP POST的YouTube API v3:上传视频时无法设置摘要(标题最终显示为“未知”)

来自分类Dev

通过Android Studio将视频上传到YouTube

来自分类Dev

通过 FTP 上传网站后视频不起作用

来自分类Dev

通过HTTP流在UWP上播放视频

来自分类Dev

WebRTC视频流无法通过http工作

来自分类Dev

通过HTTP实现大文件上传

来自分类Dev

通过HTTP PUT请求上传文件

来自分类Dev

通过http同步:rsync与正常上传

来自分类Dev

iOS-通过HTTP POST上传图像

来自分类Dev

节点JS通过HTTP上传文件流

来自分类Dev

通过http帖子上传AWS PDF

来自分类Dev

通过HTTP POST请求的Java上传文件

来自分类Dev

通过HTTP的节点红色上传附件

来自分类Dev

如何不允许通过html输入文件上传视频上传?

来自分类Dev

通过HTTP的视频-您能否确定正在下载视频还是正在观看视频?

来自分类Dev

使用Spark Java通过HTTP流式传输视频文件

来自分类Dev

jwplayer无法伪流通过http处理程序加载的视频

来自分类Dev

HTTP可以通过互联网传送视频还是TCP?

来自分类Dev

从iPad上传视频-PHP

来自分类Dev

回形针视频上传

来自分类Dev

在Twitter上上传视频

来自分类Dev

Android Vimeo视频上传

来自分类Dev

Rails视频上传