从Postman导出带文件的HTTP POST请求至PHP-Curl无法正常工作
问题与解决记录
我遇到了一个Postman导出PHP-Curl代码后无法正常上传文件的问题:
- 在Postman中发送HTTP POST请求,通过表单数据上传本地文件(字段键为
plsm_xls_file[]),请求完全正常 - 但将请求导出为PHP-Curl代码后执行,发现文件并未正确附加到请求中,功能失效
导出的PHP-Curl代码如下:
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://mydomain.nl/po_upload3.php?xlsimport=2', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => array('plsm_xls_file[]'=> new CURLFILE('/C:/Users/myuser/Documents/vita_debug/201216_FG_PC_68715.xlsx'),'template_id' => '170'), CURLOPT_HTTPHEADER => array( 'cookie: PHPSESSID=509e15pepo3ok80nd74jhdis33;' ), )); $response = curl_exec($curl); curl_close($curl); echo $response;
问题根源排查
折腾了一阵后我才反应过来,这完全是个低级错误:
Postman是在我本地电脑运行的,自然能访问本地文件系统里的文件;但这段导出的代码是在远程服务器上执行的,服务器根本无法访问我本地Windows系统的文件路径/C:/Users/...,文件路径对服务器来说完全不存在,自然没法正确附加文件。
内容的提问来源于stack exchange,提问作者Hacciano
相关产品推荐
相关产品推荐

