0

サーバー側からの入力としてWord docを取得し(Aなど)、それをPDFに変換する別のAPI(Bなど)に投稿するJavaScript APIを作成しようとしています。私がこれを行っている理由は、各 A API を変更する代わりに、任意の A に対して B への呼び出しを使用できるようにするためです (単語ドキュメントを提供する複数の As があります)。

これは私がこれまで行ってきたことです。問題は、B を呼び出しているときに、送信しているファイルを取得できないことです。

これが私のコードです。

サーバーへのJavaScript呼び出し.

$("#downloadFile").click(function(){
        $.ajax({
            url : "/fileDownload.action",
            success : function(data){
                handleFile(data);
            }
        });
    });
});

function handleFile(inputFile){
    $.ajax({
        url : "/convertFile.action",
        type : "POST",
        data : {inputFile : inputFile },
        cache:false,
        processData:false,
        contentType: "application/msword",
        success : function(data){
            alert("yay?");
        }
    });
}

"/convertFile.action" のサーバー側 (Struts 2.3 アクション クラス) には、setInputFile(File inputFile)リクエストからファイルを設定するメソッドがあります。ただし、ファイルの設定ではありません。

HTMLのフォームで標準のファイルアップロードを使用すると、ファイルが設定されます(ただし、javascriptはなく、プレーンなhtmlとサーバー側のコードのみです)。

また、Ajax 呼び出しなしでフォームと投稿を作成しようとすると、同じ結果が得られます。この回答のjsを使用してフォームを投稿しようとしました。

私は何を間違っていますか?1 つの可能性は、入力を文字列またはストリームとして取得する必要があることです。しかし、私が間違っている/違反している/できないことは他にありますか?

4

0 に答える 0