我似乎无法找到这个问题的真正答案,所以我在这里:
如何multipart/form-data在PHP中以格式解析原始HTTP请求数据?我知道如果格式正确,原始POST会自动解析,但我所指的数据来自PUT请求,而PHP不会自动解析.数据是多部分的,看起来像:
------------------------------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
Run Code Online (Sandbox Code Playgroud)
我正在使用libcurl发送数据(伪代码):
curl_setopt_array(
CURLOPT_POSTFIELDS => array(
'user_id' => 3,
'post_id' => 5,
'image' => '@/tmp/current_file'),
CURLOPT_CUSTOMREQUEST => 'PUT'
);
Run Code Online (Sandbox Code Playgroud)
如果我删除了CURLOPT_CUSTOMREQUEST位,请求将作为服务器上的POST处理,并且所有内容都被解析得很好.
有没有办法手动调用PHP的HTTP数据解析器或其他一些很好的方法来做到这一点?是的,我必须发送请求作为PUT :)