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

标签 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/文件,它已经搞砸了..

最佳答案

是的,

你需要用base64编码文件,然后发送 然后在收到接收到的文件时再次解码。我发现它唯一有效的方法。

关于javascript - 将 PDF 发送到后端会破坏编码和字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54665161/

相关文章:

javascript - 使用jquery修改textarea文本

java - 当我子类化 OnClickListener() 时,出现空指针异常

java - 使用 JAX-RS( Jersey )和 @RolesAllowed 的自定义 HTTP 状态响应

javascript - 如何使用 d3 和 Ajax 将文本动态附加到 svg?

javascript - 缓和固定位置 Jquery

javascript - 阻止图像上的强制触摸事件,但仍允许在 iOS Safari 中进行长按事件

java - Android-以编程方式发送彩信而不是默认应用程序

java - 如何杀死所有未跟踪Android的警报管理器

java - 捕获所有可能的路径参数 jax-rs regex

jakarta-ee - JAX-RS:自定义类对象未注入(inject) ContainerRequestFilter