PHP中的HTTP PUT方法:将文件与表单数据分开

时间:2013-05-02 06:52:02

标签: php api rest put

当通过POST上传文件时,表单数据通过$ _POST和$ _FILES变量(分别)从文件中分离出来。另一方面,当通过PUT上传文件时,必须从单个源(php://input)检索响应。遗憾的是,当涉及文件时,php://input似乎包含多个标头,这些标头似乎被某种密钥划分(在这种情况下为--6OJvloM5owOQsn2b3APr-Ad9dDLvRqBxm)。

--6OJvloM5owOQsn2b3APr-Ad9dDLvRqBxm
Content-Disposition: form-data; name="file"; filename="image.jpg"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary

<<<BINARY DATA>>>
--6OJvloM5owOQsn2b3APr-Ad9dDLvRqBxm
Content-Disposition: form-data; name="description"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

<<<FILE DESCRIPTION>>>
--6OJvloM5owOQsn2b3APr-Ad9dDLvRqBxm--

没有迭代整个响应并尝试选择不同的标题,有没有办法将文件与表单数据分开?

注意:我正在使用众所周知的第三方应用程序来发出API请求,因此问题本身不太可能存在于请求中。

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试在一个PUT请求中做很多事情。但是,如果您确实需要处理原始数据,则应该能够使用诸如此类的库将其解析为MIME字符串:http://pear.php.net/package/Mail_mimeDecode