将PDF发送到后端会破坏编码和字符

时间:2019-02-13 07:59:34

标签: javascript java jax-rs

我尝试使用axios发送在前端生成的PDF,并保存在后端。

我似乎无法弄清所有类型。.

axios.post(`http://localhost:8080/pdfs`,
        data,
        {
            responseType: 'arraybuffer',
            headers: {
                'Content-Type': 'application/json',
                'Accept': 'application/pdf'
            }
        })

Java返回:

@POST
@Path("/pdfs")
public void test(final File req,
                 final @Context SecurityContext securityContext) throws IOException, SQLException {

    pdfService.init(req);

}

非常简单的东西。 PDF还是可以的,但是像ö和ä这样的字符已损坏,甚至某些空格都打印为“”

这似乎是在pdf发送到后端的过程中发生的,因为其他从前端简单下载相同PDF(没有与后端的连接)的按钮是100%正确的。

我应该使用responseType:Blob,还是尝试调整Java端?

在控制台中打印时,到达时后端侧的数据看起来像这样(仍然包含所有特殊字符):

%PDF-1.3
%ºß¬à
3 0 obj
<</Type /Page
/Parent 1 0 R
.....

但是,如果我在pdfService之前停止使用调试器运行并查看tmp /文件,则它已经搞砸了。。

1 个答案:

答案 0 :(得分:1)

是的

您需要使用base64编码文件,然后发送 然后在收到接收到的文件时再次解码。我找到它的唯一途径。