PHP輸入流php://input的使用分析
在做一個攝像頭拍照然后上傳的功能,php中使用php://input來獲取內容。于是就了解了下php://input。
從官網信息來看,php://input是一個只讀信息流,當請求方式是post的,并且enctype不等于“multipart/form-data”時,可以使用php://input來獲取原始請求的數據。
看一個簡單的例子。
客戶端就是一個表單,非常簡單。
<form action='' method='POST'> name: <input type='text' name='name' value='tom' /><br /> age:<input type='text' name='age' value='22' /><br /> <input type='submit' value='Submit' /></form>
將表單提交到服務端,服務端使用file_get_contents獲取php://input內容
$content = file_get_contents('php://input');echo $content; // 輸出name=tom&age=22
官網關于php://input的說明中,反復有提到 $HTTP_RAW_POST_DATA 這個變量,這個變量其實和 file_get_contents(php://input) 的內容是一樣的。如果要開啟這個變量,需要修改配置文件,找到always_populate_raw_post_data這個選項,設置為On,然后重新啟動web服務器,就可以了。而使用php://input不需要修改php配置文件。
在項目應用中,如攝像頭拍照,上傳保存,就可以用到php://input??蛻舳伺恼蘸?,把圖片流傳送到服務端,服務端使用 file_get_getcontents(’php://input’)就能獲取到圖片流,然后把圖片流保存到一個文件,這個文件就是圖片了。
相關文章: