使用 PHP 手动解析原始多部分/表单数据
我似乎找不到这个问题的真正答案,所以我在这里:
如何在PHP中解析原始HTTP请求数据的格式?我知道如果格式正确,原始POST会自动解析,但是我所指的数据来自PUT请求,该请求不会被PHP自动解析。数据是多部分的,看起来像这样:multipart/form-data
------------------------------b2449e94a11c
Content-Disposition: form-data; name="user_id"
3
------------------------------b2449e94a11c
Content-Disposition: form-data; name="post_id"
5
------------------------------b2449e94a11c
Content-Disposition: form-data; name="image"; filename="/tmp/current_file"
Content-Type: application/octet-stream
�����JFIF���������... a bunch of binary data
我用libcurl发送数据,如下所示(伪代码):
curl_setopt_array(
CURLOPT_POSTFIELDS => array(
'user_id' => 3,
'post_id' => 5,
'image' => '@/tmp/current_file'),
CURLOPT_CUSTOMREQUEST => 'PUT'
);
如果我删除CURLOPT_CUSTOMREQUEST位,请求将在服务器上作为POST处理,并且所有内容都可以很好地解析。
有没有办法手动调用PHPs HTTP数据解析器或其他一些不错的方法来做到这一点?是的,我必须将请求作为PUT:)