我在我的一个脚本中使用curl php的PUT请求,使用REST API将文件上传到外部文件存储库 . 但是,上传的文件包含有关Content-Disposition,Content-Type和文件开头和结尾的一些字母数字代码的信息,除非再次手动终止,否则无效 .
不必要的开销看起来像这样:
-------------------------- e876c4b8eee91562 Content-Disposition:form-data; NAME = “test_file里面”; filename =“test_3.xlsx”Content-Type:application / octet-stream
我用来做这个请求的代码是:
$ch = curl_init($upload_url);
$cfile = new CURLFile($file_realpath, 'application/octet-stream', $base_file_name);
$data = array ('test_file' => $cfile);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept:application/json',
'Content-Type:application/octet-stream',
));
b2share_ignore_certificates($ch);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$headerSent = curl_getinfo($ch, CURLINFO_HEADER_OUT);
curl_close($ch);
我无法将请求更改为POST,因为另一方的REST API需要PUT请求 . 关于如何摆脱开销的任何想法?