Загрузка большого видео с iphone на веб-сервер

Я пытаюсь загрузить большое видео с iphone на веб-сервер с php-скриптом.

Я использую NSInputStream для получения фрагментов видеофайлов, и я создаю запрос (POST) на каждом обходе

 - (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode 

метод с данными чтения, переданными как параметр.

Вот код, который я использую, чтобы получить куски данных

 - (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { switch(eventCode) { case NSStreamEventHasBytesAvailable: { NSMutableData *dataSlice; uint8_t buf[1048576]; unsigned int len = 0; len = [(NSInputStream *)stream read:buf maxLength:1048576]; if(len) { dataSlice = [NSMutableData dataWithBytes:(const void *)buf length:len]; NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:folderNameForUpload, kFolderName, @"abcd.MOV", kFileName, @"MOV", kFileType, nil]; MKNetworkOperation *op = [self.networkEngine operationWithPath:@"upload.php" params:params httpMethod:@"POST"]; [op addData:dataSlice forKey: @"file" mimeType: @"image/mov" fileName: @"abcd"]; [op onCompletion:^(MKNetworkOperation *completedOperation) { } onError:^(NSError *error) { }]; [[WebRequest sharedInstance].networkEngine enqueueOperation: op]; } else { NSLog(@"NO MORE BUFFER!"); } break; } case NSStreamEventEndEncountered: { [stream close]; [stream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [stream release]; stream = nil; break; } } } 

Он отправляет данные на сервер, и я могу записать куски в файл. Но проблема в том, что если есть более одного фрагмента, файл будет поврежден, и я не смогу открыть видеофайл.

Я проверил размер файла как на сервере, так и на клиенте, и оба они точно такие же.

Ниже приведен скрипт php, который я использую для объединения фрагментов видеофайлов.

  $tmp_file = $_FILES['file']['tmp_name']; $write_handle = fopen($fileURL, "ab+"); $read_handle = fopen($tmp_file, "rb"); $contents = fread($read_handle, filesize($tmp_file)); fwrite($write_handle, $contents); fclose($write_handle); fclose($read_handle); 

Что я здесь делаю неправильно? Пожалуйста, помогите!

Я застрял над этой проблемой !!

Заранее спасибо,

Сураджа

Solutions Collecting From Web of "Загрузка большого видео с iphone на веб-сервер"

У меня проблемы с парнем. На самом деле, я отправлял разные куски видео одновременно. И проблема возникла из-за того, что более поздние фрагменты видео достигли сервера до первого фрагмента видео.

Я решил проблему, отправив второй кусок видео только после того, как первый кусок достигнут веб-сервера, и ответ получен на стороне клиента.