Estoy trabajando en una aplicación basada en web que potencialmente se utilizará en entornos con conexión a Internet inestable. Lo estoy implementando como una aplicación fuera de línea de HTML5 que utilizará el almacenamiento local HTML5 (en realidad jQuery plug-in jStorage). Se trata de una aplicación impulsada por la entrada de datos, por lo que todas las entradas nuevas creadas sin conexión se guardan en el almacenamiento local y se sincronizarán más adelante con el servidor cuando se restablezca la conectividad a Internet. Casi lo tengo funcionando, pero ahora estoy enfrentando un requisito en el que los usuarios necesitarán cargar una imagen junto con un envío de entrada de datos.
Encontré esta especificación de la API HTML5 - http://www.w3.org/TR/file-upload/ que habla sobre la carga de archivos y el acceso sin conexión. Antes de profundizar en esto, ¿hay alguna envoltura alrededor de esta funcionalidad que me simplifique esto?
También acabo de encontrar este artículo - http://hacks.mozilla.org/2010/02/an-html5-offline-image-editor-and-uploader-application/ que utiliza una API de TwitPic públicamente disponible y quería obtener algunos comentarios profesionales de la gente de aquí.
¡Gracias!Carga de archivos en aplicaciones fuera de línea HTML5
Respuesta
Sé que ha pasado un tiempo desde que pregunté esto, pero sigo viendo que esta pregunta es favorecida y votada, así que pensé en compartir cómo terminé resolviendo esto. En mi caso, los archivos no son tan grandes, así que simplemente decidí codificarlos MIME y luego almacenar la cadena en localStorage HTML5. Funciona como un encanto.
Más detalles serían útiles. [Esta pregunta SO] (http://stackoverflow.com/questions/19183180/how-to-upload-an-image-save-it-to-localstorage-and-then-display-it-on-the-next) cubre imágenes, pero debe servir como un buen ejemplo de hacer lo que se describe de forma aproximada en esta respuesta. –
Hola @insiderpro para que guarde las imágenes en el almacén local y ¿cómo las envía al servidor más adelante? Como base64? 10x – Bill
@Bill, sí, los empujo al servidor como cadenas base64. –
que había escrito un artículo hace algún tiempo en HTML5 archivo API - http://speckyboy.com/2012/10/30/getting-to-grips-with-the-html5-file-api-2/
también refieren el repositorio GitHub - https://github.com/mailru/FileAPI para los controles de avance.
No creo que localStorage
sea la respuesta correcta aquí porque localStorage
guarda solo cadenas y tiene un límite de almacenamiento de 5 megabytes.
puedo sugerir algo así como http://pouchdb.com
Pero si insiste en localStorage
, a continuación, Mozilla Hacks tiene un artículo sobre almacenamiento de imágenes en localStorage
: http://hacks.mozilla.org/2012/02/saving-images-and-files-in-localstorage/
indexedDB
podría ser un mejor lugar para almacenar archivos: http://hacks.mozilla.org/2012/02/storing-images-and-files-in-indexeddb/
- 1. caché fuera de línea HTML5 caducidad programática
- 2. html5 almacenamiento fuera de línea preparado db
- 3. HTML5 caché fuera de línea google font api
- 4. Acerca del almacenamiento fuera de línea de HTML5
- 5. Carga de archivos HTML5 FormData con RubyOnRails
- 6. HTML5/JS - compruebe que la aplicación está fuera de línea
- 7. HTML5 usa la caché solo cuando está fuera de línea
- 8. iOS: ¿Deshabilitó Apple la capacidad fuera de línea de HTML5 para aplicaciones web guardadas en la pantalla de inicio?
- 9. audio HTML5 en iOS4 iPhone fuera de línea ¿La aplicación web no funciona?
- 10. HTML5: carga de archivos AJAX con la barra de progreso
- 11. Carga de archivos HTML5 con barras de progreso múltiples
- 12. Subidas reanudables con la API de carga de archivos HTML5 -
- 13. Soporte en línea y fuera de línea para aplicaciones de RestKit iOS
- 14. ASP.NET MVC 3: ¿Admite la carga de múltiples archivos HTML5?
- 15. decente html5 ejemplos de almacenamiento y almacenamiento en caché fuera de línea
- 16. Carga de varios archivos en blobstore (redux)
- 17. ¿Puede la caché de Android video HTML5 con manifiesto de caché fuera de línea?
- 18. Obteniendo notificaciones de accesibilidad en línea/fuera de línea
- 19. Error: dispositivo fuera de línea
- 20. C++ Win32 API documentación fuera de línea?
- 21. Haskell documentación fuera de línea?
- 22. Detección de funciones de carga de archivos HTML5 en el navegador
- 23. ¿Cómo puedo almacenar un video de 50MB en el caché de aplicaciones de HTML5?
- 24. Carga de archivos en MVC
- 25. Carga de archivos en Ruby on Rails
- 26. Clojure Leiningen instalación fuera de línea
- 27. línea clara en HTML5 Canvas
- 28. Buenos tutoriales HTML5 en línea
- 29. Carga de archivos ASP.NET
- 30. Carga de archivos reanudables
No estoy muy seguro de que te entendamos. No puedes subir un archivo a un servidor fuera de línea. Período. La demostración a la que se conectó debe estar retenida en el archivo y esperando una conexión, pero no hay una forma mágica de estar fuera de línea. –
@RaymondCamden - eso es exactamente lo que estaba buscando - mantenga el archivo (o su contenido) en alguna parte hasta que la conexión vuelva a estar disponible. Estoy escribiendo una aplicación "ocasionalmente conectada", que no puede confiar en que la conexión esté activa en todo momento. Almacena en caché los registros no sincronizados en el almacenamiento local HTML5 y los sincroniza con el servidor siempre que la conexión esté disponible. Me preguntaba cómo se puede lograr esto con los archivos. –