天天看點

使用 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 資料時遇到的問題

繼續閱讀