0

我正在尝试创建一个 javascript api,以从服务器端(比如 A)获取一个 word doc 作为输入,并将其发布到另一个 api(比如 B),它将其转换为 pdf。我这样做的原因是我可以对任何 A 使用对 B 的调用,而不必修改每个 A API(有多个提供 word 文档的 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来发布表单。

我究竟做错了什么?一种可能性是我需要将输入作为字符串或流。但是还有什么我做错/违反/不能做的吗?

4

0 回答 0