javascript - 将 PDF 发送到后端会破坏编码和字符
问题描述
我尝试使用 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 对文件进行编码,然后在收到接收到的文件时发送并再次解码。我发现它工作的唯一方法。
推荐阅读
- ios - Xcode 不再在暂停时在调试器导航器中按线程显示堆栈跟踪
- windows - 通过 TeamCity 执行时出现 dos2unix 格式转换错误
- python-3.x - 无法在 DataFrame 列上使用 Dict 替换值
- html - Html5 输入模式检查
- scala - 参数化测试 SCIO (JobTest) 和 Scala 测试 (forAll)
- json - 如何在flutter中访问ModelName / ProviderName的数据表单实例
- replace - C#如何读取文本文件-查找/替换文本-删除空格-最后用替换的数量更新一行
- html - 在 VBA 中的 Access 中将 RTF 嵌入式 OLE 转换为 HTML
- ios - 统一导出后xcode中的admob横幅错误
- ios - 如何在 UIAlertAction 中传递多个处理程序