使用XMLHttpRequest()将文件发送到Tika服务器

时间:2016-07-11 06:51:10

标签: xmlhttprequest wakanda

我尝试将内容提取的PDF发送到Tika服务器但总是收到错误:&#34;无法使用源编码转换来自流的文本&#34; < / p>

这就是Tika期待文件的方式:

&#34;所有采用文件的服务都使用HTTP&#34; PUT&#34;要求。当&#34; PUT&#34;如果使用,原始文件必须在请求正文中发送而不需要任何其他编码(不要使用multipart / form-data或其他容器)。&#34; 来源http://www.quirksmode.org/js/popup.html

使用XMLHttpRequest()发送文件的正确方法是什么?

代码:

var response, error, file, blob, xhr;

file = new File("/PROJECT/web/dateien/ai/pdf.pdf");

blob = file.toBuffer().toBlob("application/pdf");
url = "http://localhost:9998/tika";

// send data
try {
    xhr = new XMLHttpRequest();
    xhr.open("PUT", url);
    xhr.setRequestHeader("Accept", "text/plain");
    xhr.send(blob);
} catch (e) {
    error = e;
}

({
    response: xhr.responseText,
    status: xhr.statusText,
    error: error,
    type: xhr.responseType,
    blob: blob
});

错误:

https://wiki.apache.org/tika/TikaJAXRS#Services

1 个答案:

答案 0 :(得分:2)

我怀疑当XHR体内有blob时,Wakanda会将PUT请求转换为POST请求。您可以通过电汇查询您的XHR请求并添加详细信息吗?如果是这样,您可以填写wakanda(https://github.com/Wakanda/wakanda-issues/issues

中的问题

希望它有所帮助, 晏