라이브러리 Afnetworking 멀티 파트에서 비디오 업로드

Tyrone Prude

갤러리에서 동영상을 업로드하여 서버 멀티 파트로 보내야합니다.

갤러리에서 영화를 선택하면 다음 정보가 있습니다.

 self.videoDictionary = {
    UIImagePickerControllerMediaType = "public.movie";
    UIImagePickerControllerMediaURL = "file:///Users/alin/Library/Application%20Support/iPhone%20Simulator/7.0.3/Applications/714D0B71-80EA-4B6C-9ACF-A287C8F40121/tmp/trim.FF287468-B25E-4EEA-8EAB-A485842476FA.MOV";
    UIImagePickerControllerReferenceURL = "assets-library://asset/asset.MOV?id=393E740F-B7F4-46DA-BB09-69AB92C34660&ext=MOV";
} 

내 WS 서명은 다음과 같습니다.

매개 변수 :

  • 해시시
  • 표제
  • 기술
  • 비디오

    동영상을 업로드하려고 할 때 문제가 있습니다.

    -(void)addVideoRequestToWS
    {
    BusinessLogic *bl = [BusinessLogic sharedManager];
    
    ApiClientBlitzApp *client = [ApiClientBlitzApp sharedClient];
    
    NSString *videoURL = [self.videoDictionary objectForKey:@"UIImagePickerControllerReferenceURL"];
    NSData *videoData = [NSData dataWithContentsOfURL:[NSURL fileURLWithPath: videoURL]]; // I suppose my problem are from two lines of code
    
    NSMutableURLRequest *request = [client multipartFormRequestWithMethod:@"POST" path:getAddVideo parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
    
           [formData appendPartWithFormData:[[NSString stringWithFormat:@"%@",bl.currentUser.hash] dataUsingEncoding:NSUTF8StringEncoding] name:@"hash"];
           [formData appendPartWithFormData:[[NSString stringWithFormat:@"%@",self.textFieldTitle.text] dataUsingEncoding:NSUTF8StringEncoding] name:@"title"];
           [formData appendPartWithFormData:[[NSString stringWithFormat:@"%@",self.textFieldDescription.text]] dataUsingEncoding:NSUTF8StringEncoding] name:@"description"];
           [formData appendPartWithFileData:videoData name:@"video_file" fileName:@"testvideo.mov" mimeType:@"video/quicktime"];
      }];
    
    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
    [operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
         NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite);
    
    }];
    [client enqueueHTTPRequestOperation:operation];
    
    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    
        NSData *JSONData = [operation.responseString dataUsingEncoding:NSUTF8StringEncoding];
        NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:JSONData options:NSJSONReadingMutableContainers error:nil];
    
        NSLog(@"jsonObject of the list = %@", jsonObject);
    }
     failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(@"error: %@", operation.responseString);
         NSLog(@"%@",error);
     }];
    [operation start];
    }
    
아론 브레 거

몇 가지 문제가 있으며 어떤 문제가 발생했는지 언급하지 않았습니다.

첫째,이 줄 :

[client enqueueHTTPRequestOperation:operation];

완료 블록을 설정하기 전에는 절대 수행해서는 안되는 작업을 즉시 시작할 수 있습니다.

둘째,이 줄 :

[operation start];

즉시 작업을 시작합니다 (이미 추가 한 NSOperationQueue가 아직 시작되지 않은 경우). 둘 다가 아닌 둘 중 하나만 수행해야하며 작업 을 구성한 후에 수행해야하는 작업을 수행해야합니다 .

마지막으로 멀티 파트 업로드의 경우 :

NSMutableURLRequest *request = [client multipartFormRequestWithMethod:@"POST" path:getAddVideo parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {

       [formData appendPartWithFormData:[[NSString stringWithFormat:@"%@",bl.currentUser.hash] dataUsingEncoding:NSUTF8StringEncoding] name:@"hash"];
       [formData appendPartWithFormData:[[NSString stringWithFormat:@"%@",self.textFieldTitle.text] dataUsingEncoding:NSUTF8StringEncoding] name:@"title"];
       [formData appendPartWithFormData:[[NSString stringWithFormat:@"%@",self.textFieldDescription.text]] dataUsingEncoding:NSUTF8StringEncoding] name:@"description"];
       [formData appendPartWithFileData:videoData name:@"video_file" fileName:@"testvideo.mov" mimeType:@"video/quicktime"];
  }];

서버가 미친 짓을하지 않는 한 이것은 잘못된 것일 수 있습니다. 우선, .NET과 같은 문자열을 전달하기 위해 문자열 포맷터를 사용할 필요가 없습니다 self.textFieldTitle.text. 둘째, 무엇 hash입니까? 일반적으로 해시는 NSUInteger이 방식으로 문자열 포맷터에서 작동하지 않습니다. 무슨 일이 일어나고 있는지, 어떤 일이 일어나고 싶은지에 대해 충분한 세부 정보를 제공하지 않았기 때문에 확실하게 말할 수 없습니다.

앱이 실제로 전송하는 트래픽을 검사하려면 Charles 와 같은 HTTP 프록시를 설정해야합니다 . 또는 최소한 AFHTTPRequestOperationLogger 를 설치해야합니다. 그러면 대부분의 항목이 Xcode 콘솔에 기록됩니다. 당신이 보내는 것을 서버가 기대하는 것과 비교하십시오. 성공 및 실패 블록 내에 중단 점을 설정하고 오류가 표시되면 검사합니다. 그리고 다시 문제가 발생하면 Stack Overflow에 콘솔 출력을 게시하여 더 나은 도움을 드릴 수 있습니다. 예상 한 내용실제로 발생 하는 것과 어떻게 다른지 에 대한 세부 정보를 포함하세요 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

YouTube에 비디오를 업로드하려고 할 때 "잘못된 멀티 파트 본문"이 표시됨

분류에서Dev

자바에서 이미지의 멀티 파트 업로드

분류에서Dev

iOS 7에서 멀티 파트 파일로 서버에 이미지 업로드

분류에서Dev

Retrofit 라이브러리를 사용하여 멀티 파트를 사용하여 서버에 이미지를 업로드하는 방법

분류에서Dev

비디오 업로드 및 라이브 스트리밍

분류에서Dev

FineUploader-S3에 멀티 파트 업로드 오류

분류에서Dev

OneDrive에 Indy 10 멀티 파트 업로드 오류

분류에서Dev

Android에서 이미지 파일없이 멀티 파트 업로드

분류에서Dev

멀티 트랙 설정에서 파형 .js 라이브러리를 사용하여 오디오에서 위치를 찾는 문제

분류에서Dev

AFNetworking 2.0 : 멀티 파트 POST시 오류 503

분류에서Dev

라이브러리에서 DocumentsDocument 디렉토리로 비디오 복사

분류에서Dev

라이브러리 / 캐시에서보기로 비디오로드

분류에서Dev

Android Studio 6.1에서 네이티브 라이브러리 빌드 오류

분류에서Dev

기존 멀티 파트 포스트 프로젝트를 사용하여 Android에서 여러 파일 업로드

분류에서Dev

Swift의 Alamofire 멀티 파트 업로드 게시 오류

분류에서Dev

Qt를 사용한 멀티 파트 업로드 중 오류

분류에서Dev

Retrofit이 오디오 / mp3로 업로드 한 후 컨텐츠 유형을 멀티 폼 파트 바디 / 폼 데이터로 대체합니다.

분류에서Dev

Swift 4.2에서 멀티 파트 API로 전달되는 비 라틴 (다국어) 파일 이름

분류에서Dev

Google Bigquery에 멀티 파트 업로드

분류에서Dev

멀티 파트 데이터 업로드-Azure Function V2

분류에서Dev

멀티 파트 / 양식 데이터 업로드-Nodejs-ExpressJS

분류에서Dev

안드로이드 스튜디오 | CPP 파일 오류 오류 : 비트 맵 라이브러리에서 'AndroidBitmap_unlockPixels'에 대한 정의되지 않은 참조

분류에서Dev

단일 멀티 파트 게시물에 여러 파일 업로드

분류에서Dev

Node에서 Java JNA 네이티브 라이브러리로드

분류에서Dev

Sitecore-미디어 라이브러리의 업로드 파일 오류

분류에서Dev

멀티 파트 POST 요청에 업로드 된 파일이 없습니다.

분류에서Dev

WSL의 NodeJS + Webpack + Docker 프로젝트에서 네이티브 'fs'라이브러리로 오류 발생

분류에서Dev

인디케이터 멀티로드 설정 파일의 위치

분류에서Dev

Android에서 WCF로 멀티 파트 파일 업로드

Related 관련 기사

  1. 1

    YouTube에 비디오를 업로드하려고 할 때 "잘못된 멀티 파트 본문"이 표시됨

  2. 2

    자바에서 이미지의 멀티 파트 업로드

  3. 3

    iOS 7에서 멀티 파트 파일로 서버에 이미지 업로드

  4. 4

    Retrofit 라이브러리를 사용하여 멀티 파트를 사용하여 서버에 이미지를 업로드하는 방법

  5. 5

    비디오 업로드 및 라이브 스트리밍

  6. 6

    FineUploader-S3에 멀티 파트 업로드 오류

  7. 7

    OneDrive에 Indy 10 멀티 파트 업로드 오류

  8. 8

    Android에서 이미지 파일없이 멀티 파트 업로드

  9. 9

    멀티 트랙 설정에서 파형 .js 라이브러리를 사용하여 오디오에서 위치를 찾는 문제

  10. 10

    AFNetworking 2.0 : 멀티 파트 POST시 오류 503

  11. 11

    라이브러리에서 DocumentsDocument 디렉토리로 비디오 복사

  12. 12

    라이브러리 / 캐시에서보기로 비디오로드

  13. 13

    Android Studio 6.1에서 네이티브 라이브러리 빌드 오류

  14. 14

    기존 멀티 파트 포스트 프로젝트를 사용하여 Android에서 여러 파일 업로드

  15. 15

    Swift의 Alamofire 멀티 파트 업로드 게시 오류

  16. 16

    Qt를 사용한 멀티 파트 업로드 중 오류

  17. 17

    Retrofit이 오디오 / mp3로 업로드 한 후 컨텐츠 유형을 멀티 폼 파트 바디 / 폼 데이터로 대체합니다.

  18. 18

    Swift 4.2에서 멀티 파트 API로 전달되는 비 라틴 (다국어) 파일 이름

  19. 19

    Google Bigquery에 멀티 파트 업로드

  20. 20

    멀티 파트 데이터 업로드-Azure Function V2

  21. 21

    멀티 파트 / 양식 데이터 업로드-Nodejs-ExpressJS

  22. 22

    안드로이드 스튜디오 | CPP 파일 오류 오류 : 비트 맵 라이브러리에서 'AndroidBitmap_unlockPixels'에 대한 정의되지 않은 참조

  23. 23

    단일 멀티 파트 게시물에 여러 파일 업로드

  24. 24

    Node에서 Java JNA 네이티브 라이브러리로드

  25. 25

    Sitecore-미디어 라이브러리의 업로드 파일 오류

  26. 26

    멀티 파트 POST 요청에 업로드 된 파일이 없습니다.

  27. 27

    WSL의 NodeJS + Webpack + Docker 프로젝트에서 네이티브 'fs'라이브러리로 오류 발생

  28. 28

    인디케이터 멀티로드 설정 파일의 위치

  29. 29

    Android에서 WCF로 멀티 파트 파일 업로드

뜨겁다태그

보관