Intereting Posts
API Google Кошелька и PHP, обработка почтовых сообщений Как экспортировать всю страницу или html-контент с помощью Highcharts, а не только в диаграмму? переменная pass между php и javascript без страницы загрузки PHP. Есть ли переносимая версия PHPUnit? Как изменить структуру по умолчанию Symfony2? Не удается подключиться к локальному размещенному mysql, используя скрипт PHP Необходимо отслеживать время простоя ПК с помощью PHP ping и отображения времени вниз D: HH: MM Что делает обертывание процедурного блока в фигурных скобках в php? CakePHP удалить подтверждение Динамически вытягивать данные из Dynamics CRM Online отображать изображение с сервера встраивание php в html PHP – создание многоуровневого ассоциативного массива из базы данных (сортировка городов по состоянию из db) Как вернуть формат даты ISO в PHP для MongoDB? Тестирование производительности на стороне сервера веб-приложения php Что замыкают замыкания PHP в операторах IF?

Как считывать данные из памяти телефона с помощью Google

Мы пытаемся загрузить видеофайлы из мобильного приложения для мобильного телефона на веб-сервер. В iPhone все работает отлично, но на Android данные отправляются в кусках, и наше серверное приложение (php) не справляется с этим.

//phonegap var options = FileUploadOptions(); options.chunkedMode = true; //default 

Мы попробовали превратить chunkedMode в false. Это работает с меньшими файлами с помощью любых видео за 1 МБ, когда телефон Android вылетает из строя. (по этой причине они по умолчанию меняют chunkMode).

Наш вопрос заключается в том, как читать загруженные данные куска, используя php? Есть ли параметр в Apache, который должен быть включен для чтения этих данных?

Нет никакой разницы между чтением фрагментированных данных на стороне сервера и не-chunked. это именно то, как телефон отправляет данные (в кусках 8192 байта или как один поток).

В Интернете есть много болтовней этой функции, и лично я нашел, что решение для всей файловой системы было немного шелушится, особенно в больших файлах (например, видеофайлах).

Некоторые люди сообщают, что это происходит в файлах размером больше 4.8mb, на моем телефоне Android это происходит вокруг знака 8mb.

Когда мое приложение загружает файлы и нет прикрепленного файла (это то, что происходит в сценарии с ошибкой соединения 3), я регистрирую его, поэтому я могу видеть телефоны, которые имеют проблемы. это происходит и с iphones (некоторые модели).

Если вы посмотрите на журналы Android, когда это произойдет, вы также можете увидеть исключение из памяти.

Как это вам поможет? это не так, но, надеюсь, это помогает объяснить, в чем проблема. К сожалению, мы ничего не можем с этим поделать – помимо внесения изменений в исходный код телефона и повторного написания метода filetransfer!

Из интереса, по телефону у вас возникают проблемы, вы можете загружать массивные файлы, используя, скажем, facebook, без проблем? Однако это приложение загружает файлы, безусловно, способ, которым следует делать телефонные звонки.

Я также испытал эту проблему. Файл загружается отлично в iOS, поэтому сервер обрабатывает chunkedMode, но на Android fileupload возвращает «3» для ошибки соединения. Я пробовал решение здесь: Phonegap: FileTransfer.upload () не работает на Android , но не повезло.

Это закончилось проблемой веб-сервера. Apache должен быть настроен для поддержки режима chunked. Также обратите внимание, что по умолчанию NGNIX не имеет поддержки режима chunked, вам нужно будет установить модуль http://wiki.nginx.org/HttpChunkinModule

Еще одно странное наблюдение. Я загрузил 50 Мбайт видеофайла в неправильный URL. Это никуда не годилось, но Android запустил несколько колес и запустил обратный вызов. Нет ошибки 3 и без сбоев. Как только я исправил опечатку и отправил на правильный URL-адрес, я получил ошибку 3.