如何在 PHP 中存取原始多部分/表單資料 POST 資料?
Nov 25, 2024 am 01:38 AM存取原始Multipart/Form-Data POST 資料
在PHP 中,multipart/form-data POST 請求的預設行為是輸入資料請求的預設行為是輸入資料請求的預設行為由PHP 自動解析。如果您需要存取原始的、未解析的數據,這會帶來問題。
雖然 php://input 和 $HTTP_RAW_POST_DATA 都可以用於存取原始 POST 數據,但兩者都不適用於 multipart/form-data 請求。
解決方法
不幸的是,獲取原始資料對於 multipart/form-data 表單來說,透過傳統的 PHP 方法是不可能的。 PHP 堅持自己解析數據,無法手動解析。
但是,有一個解決方法,涉及修改 Apache 配置。透過將以下程式碼片段新增至您的apache conf 檔案中,您可以變更傳入要求的Content-Type:
<Location "/backend/XXX.php"> SetEnvIf Content-Type ^(multipart/form-data)(.*) NEW_CONTENT_TYPE=multipart/form-data-alternate OLD_CONTENT_TYPE= RequestHeader set Content-Type %{NEW_CONTENT_TYPE}e env=NEW_CONTENT_TYPE </Location>
登入後複製
這將強制PHP 將multipart/form-data 請求視為multipart/form -data -alternate,防止自動解析。使用此解決方法,您可以透過讀取 php://input 並手動解析它來存取原始資料。
限制
雖然此解決方法允許您存取原始資料也有限制。具體來說,$_FILES 超全域變數將為空,因為 PHP 不會解析表單資料。
以上是如何在 PHP 中存取原始多部分/表單資料 POST 資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)