2012-01-13 23 views
5

Tôi cần tải xuống, chỉnh sửa và tải lên (thông qua HTTP PUT) các đốm màu nhị phân đến CouchDB (dưới dạng tệp đính kèm) từ trình duyệt javascript CouchApp.http GET và PUT dữ liệu nhị phân (đính kèm CouchDB) từ javascript

My google-fu thất bại tôi để tìm bất cứ điều gì, ngay cả từ xa tương tự như sau:/

giải pháp hiện tại liên quan đến việc sử dụng Silverlight, và tôi muốn đi đồng bằng-js trên các trình duyệt hiện đại (Safari, Mobile Safari (iOS), IE 9, Opera 11 vv)

Có giải pháp để tải lên dữ liệu trong Chrome (Post binary data cross domain in javascript), nhưng tôi không muốn dính vào trình duyệt cụ thể đó.

Trả lời

4

Javascript hơi bất tiện khi xử lý dữ liệu nhị phân, nhưng vẫn có thể thực hiện được.

Cách đơn giản nhất để thực hiện việc này là sử dụng phiên bản base64 của CouchDB của các tệp đính kèm. Bạn có thể get attachments inline in a document, và sau đó lưu trữ chúng trở lại là inline attachments.

Bạn có thể sử dụng bất kỳ thư viện base64 Javascript nào để giải mã chúng trong trình duyệt. CouchDB bao gồm một phần như là một phần của ứng dụng Futon của nó. Bạn có thể truy xuất nó từ /_utils/script/base64.js.

+0

Cảm ơn! Bỏ lỡ điều đó. Vâng, làm việc với các tập tin đính kèm lớn sẽ ít rắc rối, nhưng kịch bản tối thiểu (chỉnh sửa mã của CouchApp từ một CouchApp) có vẻ là OK. – wizzard0

+0

Vâng, tải lên hoạt động tốt, nhưng tải xuống luôn dẫn đến dữ liệu nhiều phần ngay cả khi tôi không chỉ định Chấp nhận: tiêu đề: ( – wizzard0

+0

Vâng, việc bật JSONP vẫn không thực hiện được mẹo. Nhưng, tôi cho rằng lỗi CouchDB, do đó, câu trả lời của bạn – wizzard0

Các vấn đề liên quan