在PHP 中手動解析原始Multipart/Form-Data 資料
問題概述
解析multipart/form-data 格式的原始HTTP 請求資料可以在PHP 中是具有挑戰性的,特別是當透過未自動解析的PUT 請求接收資料時。
手動解析的解決方案
由於 PHP 不會自動處理帶有 multipart/form-data 的 PUT 請求,請手動解析是必要的。實作方法如下:
-
讀取原始資料:使用 file_get_contents('php://input') 讀取原始請求資料。
- 擷取邊界:解析CONTENT_TYPE頭,取得分隔多部分資料段的邊界字串。
-
分割內容:依照邊界字串將原始資料分成區塊。刪除結尾的“--”元素。
-
解析區塊:迭代每個區塊以識別和解析資料欄位:
-
上傳的檔案: 匹配指示使用application/octet-stream MIME 類型的檔案上傳的區塊。提取名稱屬性和二進位檔案內容。
-
非檔案欄位: 符合包含表單資料欄位的區塊。提取 name 屬性和相應的值。
用法
- 透過引用將空數組作為參數傳遞給 parse_raw_http_request 函數。
- 呼叫函數以使用解析的資料填充數組。
- 使用與表單欄位名稱對應的陣列鍵存取解析的資料。
以上是如何在 PHP 中手動解析原始多部分/表單資料請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!