Phonegap archivo android a base64 fuera de error de memoria

Estoy intentando conseguir un archivo video en androide, lo convierto a la codificación de base64 y lo subo.

Cuando el archivo es más grande que 5Mb , salgo de error de memoria en android , pero ios convertir archivos grandes también. Sólo en android tengo este error ….

Este es mi código:

 var reader = new FileReader(); reader.onload = function(evt1) {}, reader.onloadend = function(evt) { console.log("read success"); console.log(evt.target.result); }; reader.readAsDataURL(file); 

  1. Debe tener en cuenta que los datos codificados en base64 serán aproximadamente un 37% más grandes que el tamaño de los datos originales. Teniendo en cuenta que se trata de archivos grandes y la base64 de codificación causas fuera de los errores de memoria, no codificar con base64.

  2. No es una buena idea leer archivos grandes a la vez. En su lugar, recomiendo la transmisión de su archivo en el servidor. Con este enfoque, el archivo será leído y transferido en trozos, evitando errores de memoria y evitando retrasos en los dispositivos más lentos. Puede hacerlo, por ejemplo, utilizando el objeto FileTransfer con chunkedMode habilitado en FileUploadOptions .

Enfoque recomendado (adaptado de la documentación ):

 // !! Assumes variable fileURI contains a valid URI to a H.264/AVC video on the device var win = function (r) { console.log("Code = " + r.responseCode); console.log("Response = " + r.response); console.log("Sent = " + r.bytesSent); } var fail = function (error) { alert("An error has occurred: Code = " + error.code); console.log("upload error source " + error.source); console.log("upload error target " + error.target); } var options = new FileUploadOptions(); options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1); options.mimeType = "video/avc"; //change to the according mimeType options.chunkedMode = true; //upload the data in chunked streaming mode (true by default) var ft = new FileTransfer(); ft.upload(fileURI, encodeURI("http://some.server.com/upload.php"), win, fail, options); 

crear el archivo php.ini en el lado del servidor y agregar el siguiente código. Puede aumentar upload_max_filesize

register_globals = on

display_errors = Desactivado

error_reporting = E_ALL & E_NOTICE & E_WARNING & E_DEPRECATED

upload_max_filesize = 50M

memory_limit = 500M

max_execution_time = 1800

post_max_size = 120M

session.gc_maxlifetime = 86400

error_log = /var/log/php-scripts.log

#safe_mode = Desactivado #safe_mode_exec_dir = "storage_dir_path" #open_basedir = "storage_dir_path"

  • WebView / Phonegap cambiar seleccionar (desplegable) estilo
  • Donde poner el archivo de sonido personalizado para notificaciones push en Ionic 2 para Android
  • Phonegap generando screen.png y screen.9.png para pantallas de bienvenida
  • PhoneGap: ¿Hay una manera de detener el teclado de cambiar el tamaño de la vista?
  • Phonegap evento deviceready
  • Error no detectado: INVALID_STATE_ERR: excepción DOM 11
  • Mostrar sólo el teclado numérico en la aplicación Ionic / Cordova
  • Phonegap Geolocalización sin WiFi y red móvil
  • ¿Cuál es la forma correcta de desarrollar aplicaciones para sitios web en Córdoba?
  • Instalar gradle para usar en cordova construir android
  • El código de versión de su APK debe ser superior a 378
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.