После долгих попыток и чтения мне наконец-то удалось загрузить изображение в CouchDB с помощью PLUpload.
Основная проблема заключалась в том, что существует недокументированное свойство «file_data_name», которое необходимо установить вручную, чтобы соответствовать потребностям из CouchDB. Значением по умолчанию является «имя», но CouchDB ожидает «_attachments». Я нашел это свойство только путем проверки исходного кода на время выполнения флэш-памяти.
Ниже приведен javascript, который я использовал для инициализации загрузки PLU:
$("form#pluploadForm #uploader").plupload({
// General settings
runtimes : 'flash,silverlight,html5',
url : 'http://your.path.to.couchdb.com/database/[documentid]',
max_file_size : '10mb',
unique_names : true,
file_data_name : "_attachments",
// Resize images on clientside if we can
resize : {width : 320, height : 240, quality : 90},
// Specify what files to browse for
filters : [
{title : "Image files", extensions : "jpg,gif,png"},
{title : "Zip files", extensions : "zip"}
],
// Flash settings
flash_swf_url : 'js/plupload.flash.swf',
// Silverlight settings
silverlight_xap_url : 'js/plupload.silverlight.xap',
multipart : true,
multipart_params : {
description: "uploadedViaPlupload",
_rev: "[the current revision of your document]",
}
});
Но при таком подходе возможно только одно изображение в одном документе. Загрузка нескольких документов не работает, но я на самом деле не пробовал (пока).