2010-12-06 95 views
4

以下是我正在處理的內容。我們的一個程序有一個用戶用來請求支持的支持表單。此表單執行的是一個HTTP POST請求,該請求用於收集信息並將其轉發給支持電子郵件地址的PHP腳本。如何接收在PHP中使用「application/octet-stream」發送的POST數據?

POST請求包含三個類型爲Content-Type: text/plain的文本字段,可以使用$_POST['fieldname']在PHP中輕鬆讀取。但是,此POST請求中的某些內容是Content-Type: application/octet-stream類型的文件。使用$_POST似乎不適用於這些文件。我如何去閱讀這些文件的內容?

預先感謝您。

+0

什麼是表單的內容類型? – 2010-12-06 18:48:58

+0

請哦,請不要寫「接收」。這是「接收」。 @col。彈片:他可能是指`enctype`(編碼信息)。 – rhino 2010-12-06 18:49:10

回答

9

你必須使用$ _FILES超級全局:

$contents = file_get_contents($_FILES['myfile']['tmp_name']); 

你可以找到更多信息in the manual。這隻有在您的請求中使用multipart/form-data編碼時纔有效。

另外您也可以讀取原始POST數據,然後自己分析它:

$rawPost = file_get_contents('php://input'); 
+0

正如我發現的那樣,PHP在使用`php:// input`方法時將整個文件加載到內存中(並且快速耗盡大文件的內存)。當然可以切換到`multipart/form-data`並儘可能使用$ _FILES。 – 2014-03-27 08:02:23

0

使用$ _FILES數組。

相關問題