我有使用 jquery.form.js 将附件发布到 Couch 文档的代码。这一切都很好,但我真的需要允许用户在表单中输入多个文件,假设现在是 5 个文件,然后在代码中迭代表单中的五个文件,为每个文件创建一个新的 Couch 文档和附件。如果仅使用 jQuery 不是不可能的话,这是非常困难的。它可以使用 Couch“内联附件”来完成,但是您需要一个服务器端(可能是 PHP)脚本来对二进制图像数据进行 Base64 编码。这对我来说真的不是一个选择,因为这是一个 Couchapp。
所以下面的代码不起作用,它会在 jQuery 中生成一个“调用”错误。我的假设是你不能简单地在数据属性中添加对二进制文件的引用......
var url= _.couchUrl() + me.photoArgs.db +"/" +
couchDoc._id + "/attachment?rev=" + couchDoc._rev;
$.ajax({
type: "PUT",
url: url,
headers: {
"Content-Length": file.size,
"Content-Type": file.type
},
data: file,
success: function (response) {
console.log("Attachment was uploaded");
me.fileCnt--;
if (me.fileCnt == 0) console.log("Attachment(s) uploaded");
},
error: function (response) {
_.flashError('Attachment ajaxSubmit failed',me,response);
}
});
代码是从一个更大的函数内部剪辑的。我已经记录了 url 和文件,它们都有正确的数据,所以它们不是问题。
有没有人认为上述应该工作?如果是这样,我做错了什么?
非常感谢您的建议:-)