2012-01-13 10 views
5

Necesito descargar, editar y cargar (a través de HTTP PUT) blobs binarios a CouchDB (como archivos adjuntos) desde un navegador javascript CouchApp.datos binarios http GET y PUT (archivos adjuntos CouchDB) de javascript

Mi google-fu no me encontré nada ni remotamente parecido a esto:/

solución actual implica el uso de Silverlight, y me gustaría ir llanura-js en los navegadores modernos (Safari, Safari móvil (IOS), IE 9, Opera 11, etc.)

Existe una solución para cargar datos en Chrome (Post binary data cross domain in javascript), pero no deseo mantener ese navegador en particular.

Respuesta

4

Javascript es un poco incómodo para trabajar con datos binarios, pero todavía debería ser posible.

La forma más sencilla de hacerlo es utilizar la versión base 64 de CouchDB de los archivos adjuntos. Puede get attachments inline in a document, y luego almacenarlos atrás como inline attachments.

Puede usar cualquier biblioteca base64 de Javascript para decodificarlas en el navegador. CouchDB incluye uno como parte de su aplicación Futon. Puede recuperarlo desde /_utils/script/base64.js.

+0

Gracias! Perdí eso. Bueno, trabajar con archivos adjuntos de gran tamaño sería al menos incómodo, pero el escenario mínimo (editar el código de un CouchApp de otro CouchApp) parece estar bien. – wizzard0

+0

Bueno, archivos funcionan bien, pero las descargas siempre resultan en datos de varias partes, aunque no especifico Aceptar:. :(cabeceras – wizzard0

+0

Bueno, permitiendo JSONP sigue sin hacer el truco embargo, creo que un error CouchDB, por lo que su respuesta sigue siendo válido. – wizzard0