2012-01-13 86 views
5

我需要從瀏覽器javascript CouchApp下載,編輯和上傳(通過HTTP PUT)二進制blob到CouchDB(作爲附件)。來自javascript的http GET和PUT二進制數據(CouchDB附件)

我的谷歌福失敗,我發現了什麼,甚至遠程類似於這樣:/

當前的解決方案包括使用Silverlight,我希望去的現代瀏覽器(Safari瀏覽器,移動Safari瀏覽器(iOS版)純JS, IE 9,Opera 11等)

有一種解決方案可以在Chrome中上傳數據(Post binary data cross domain in javascript),但我不想堅持特定的瀏覽器。

回答

4

Javascript對於處理二進制數據有點不方便,但它應該還是可以的。

最簡單的方法是使用CouchDB的base64版本的附件。您可以get attachments inline in a document,然後將它們存回inline attachments

您可以使用任何Javascript base64庫在瀏覽器中解碼它們。 CouchDB包含一個作爲其Futon應用程序的一部分。您可以從/_utils/script/base64.js檢索它。

+0

謝謝!錯過了。那麼,與大附件的工作將至少尷尬,但裸最小的場景(編輯從另一個CouchApp一個CouchApp的代碼)似乎是確定。 – wizzard0 2012-01-14 19:09:04

+0

好了,上傳做工精細,但下載總是導致多的數據,即使我不指定接受:標題:( – wizzard0 2012-01-14 20:57:32

+0

好,使JSONP仍然沒有做的伎倆不過,我認爲這是一個錯誤的CouchDB,所以你的答案。仍然有效 – wizzard0 2012-01-14 21:11:23