将 PDF 发送到后端会中断编码和字符



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

我似乎无法将所有类型都弄清楚..

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

爪哇返回:

@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/文件,它已经搞砸了。

是的,

您需要使用 base64 对文件进行编码,然后发送然后在收到收到的文件时再次解码。我发现它工作的唯一方法。

最新更新