1

jquery.form.js を使用して Couch ドキュメントに添付ファイルを POST するコードがあります。これで問題ありませんが、ユーザーが複数のファイルをフォームに入力できるようにする必要があります。ここでは 5 つのファイルとしましょう。次に、コードでフォーム内の 5 つのファイルを繰り返し、ファイルごとに 1 つの新しい Couch ドキュメントと添付ファイルを作成します。jQuery のみを使用することは、不可能ではないにしても非常に困難です。Couchの「インライン添付ファイル」を使用して実行できますが、バイナリ画像データをBase64でエンコードするには、サーバー側(おそらくPHP)のスクリプトが必要になります。これは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 とファイルをログに記録しました。どちらも正しいデータを持っているため、問題ではありません。

上記が機能するはずだと思う人はいますか?もしそうなら、私は何を間違っていますか?

アドバイスありがとうございます:-)

4

1 に答える 1