天天看点

使用 ABAP 手动解析包含二进制文件的 multipart/form-data 数据时遇到的问题

文章标题:使用 ABAP 手动解析包含二进制文件的 multipart/form-data 数据时遇到的问题

上下文:参考这篇文章:不使用任何框架,手写纯 JavaScript 实现上传本地文件到 ABAP 服务器。

客户端代码:

使用 ABAP 手动解析包含二进制文件的 multipart/form-data 数据时遇到的问题

服务器端解析出 content-type:

使用 ABAP 手动解析包含二进制文件的 multipart/form-data 数据时遇到的问题

我上传的 PDF 大小为 30129 字节:

使用 ABAP 手动解析包含二进制文件的 multipart/form-data 数据时遇到的问题

CString 和 XString 的大小:

使用 ABAP 手动解析包含二进制文件的 multipart/form-data 数据时遇到的问题

包含了 PDF 和 Excel 数据的 multipart/form-data 数据:

使用 ABAP 手动解析包含二进制文件的 multipart/form-data 数据时遇到的问题

下图调试器里显示内容,红色高亮区域为包含 PDF 的这一块数据的描述信息,绿色高亮区域为 PDF 的实际内容。

使用 ABAP 手动解析包含二进制文件的 multipart/form-data 数据时遇到的问题

我采用字符串拼接的方式,将下图 PDF 的实际内容取出,转换成 XSTRING 格式的数据,另存到本地,发现转换过程出现了错误:

使用 ABAP 手动解析包含二进制文件的 multipart/form-data 数据时遇到的问题

大小都发生了变化:

使用 ABAP 手动解析包含二进制文件的 multipart/form-data 数据时遇到的问题

用文本编辑器打开 PDF 文件查看源代码,下图是原始文件:

使用 ABAP 手动解析包含二进制文件的 multipart/form-data 数据时遇到的问题

下图是 ABAP 服务器接收后再另存到本地的 PDF,可以看到 stream 区域内容明显有区别:

使用 ABAP 手动解析包含二进制文件的 multipart/form-data 数据时遇到的问题

继续阅读