Загрузка большого видео с 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); 

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

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

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

Сураджа

One Solution collect form web for “Загрузка большого видео с iphone на веб-сервер”

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

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

  • Что такое токен API
  • Отправка запроса POST локальному хосту, данные, полученные, но не отображающиеся на веб-странице
  • Сетевое соединение было потеряно NSURLConnection
  • Как разрешить доступ только к моей базе данных MySQL из приложения iOS? (Использование webapp в качестве шлюза для db)
  • Загрузить изображение из iOS с помощью ASIHTTPRequest
  • Ошибка проверки чеков IOS 21002
  • Быстрая загрузка нескольких изображений на сервер
  • Асинхронное шифрование в Swift
  • Ошибка несанкционированной ошибки 401 GCM
  • Уведомление об отправке ios с помощью firebase
  • Почему загруженное изображение не отображается правильно?
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.