0

当通过 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--

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

注意:我正在使用一个著名的 3rd-party 应用程序来发出 API 请求,因此问题不太可能存在于请求本身。

4

1 回答 1

0

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

于 2013-05-02T06:59:50.820 回答