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