2012-03-03 9 views
7

Estamos tratando de cargar archivos de videos desde una aplicación móvil phonegap a un servidor web. En iPhone todo funciona bien, pero en Android los datos se envían en fragmentos y nuestra aplicación de servidor (php) no puede manejarlos.Cómo leer datos fragmentados de Phone Gap File Upload en Android

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

Intentamos convertir chunkedMode en falso. Eso funciona con archivos más pequeños y con cualquier video de más de 1mb se bloquea el teléfono Android. (esa es la razón por la que encienden chunkMode por defecto).

Nuestra pregunta es cómo leer los datos de fragmentos cargados usando php? ¿Hay alguna configuración en Apache que deba activarse para leer esta información?

Respuesta

1

Terminó siendo un problema del servidor web. Apache necesita ser configurado para soportar el modo fragmentado. También tenga en cuenta que NGNIX no tiene soporte de modo fragmentado de forma predeterminada, necesitaría instalar un módulo http://wiki.nginx.org/HttpChunkinModule

+0

cómo logró esto para apache, proporcione la solución. ¡Gracias! – DevD

1

También he experimentado este problema. El archivo se carga bien en iOS, por lo que el servidor está manejando el modo fragmentado allí, pero en Android la carga del archivo devuelve "3" por error de conexión. He intentado la solución aquí: Phonegap : FileTransfer.upload() fails on Android, pero tampoco tuve suerte.

3

No hay diferencia entre la lectura de datos fragmentados en el lado del servidor frente a los no fragmentados. es solo la forma en que el teléfono envía los datos (en fragmentos de 8192 bytes o como una transmisión).

Hay un LOTE parloteo alrededor de esta característica en la web, y personalmente encontré que toda la solución de carga de archivos es un poco escamosa, especialmente en archivos más grandes (por ejemplo, archivos de video).

Algunas personas informan que ocurre en archivos de más de 4.8mb, en mi teléfono Android ocurre alrededor de la marca de 8mb.

Cuando mi aplicación carga archivos y no hay ningún archivo adjunto (esto es lo que sucede en un escenario de error de conexión 3) lo registro, así puedo ver los teléfonos que tienen problemas. sucede con los iphones también (ciertos modelos).

Si observa los registros de Android cuando suceden, también puede ver una excepción de falta de memoria.

¿Cómo te puede ayudar esto? en realidad no lo hace, pero espero que ayude a explicar cuál es el problema. Desafortunadamente, no hay mucho que podamos hacer al respecto, ¡aparte de contribuir al código fuente del teléfono y volver a escribir el método de transferencia de archivos!

Fuera de interés, en el teléfono tiene problemas, ¿puede cargar archivos masivos utilizando, por ejemplo, Facebook, sin problemas? Sin embargo, esa aplicación está cargando archivos. Seguramente es la forma en que el teléfono debería hacerlo ...

0

Otra observación extraña. Cargué un archivo de video de 50MB en la URL incorrecta. No fue a ninguna parte, pero Android hizo girar sus ruedas durante unos minutos y desencadenó la exitosa devolución de llamada. Sin error 3 y sin bloqueo. Una vez que arreglé el error tipográfico y lo envié a la URL correcta, recibí el error 3.

Cuestiones relacionadas