Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将带有二进制数据的curl转换为php_Php_Curl - Fatal编程技术网

将带有二进制数据的curl转换为php

将带有二进制数据的curl转换为php,php,curl,Php,Curl,是否有人擅长使用PHP cURL函数,并且可能将下面的cURL调用转换为PHP函数 我在将“-data binary@/var/www/html/images/request.png”部分复制到cURL的各种PHP选项中时遇到了麻烦 当我在CLI上执行此时,它工作得非常好 curl -X POST --data-binary @/var/www/html/images/request.png http://127.0.0.1:4212/index/searcher 以下是我迄今为止的最佳尝试,

是否有人擅长使用PHP cURL函数,并且可能将下面的cURL调用转换为PHP函数

我在将“-data binary@/var/www/html/images/request.png”部分复制到cURL的各种PHP选项中时遇到了麻烦

当我在CLI上执行此时,它工作得非常好

curl -X POST --data-binary @/var/www/html/images/request.png http://127.0.0.1:4212/index/searcher
以下是我迄今为止的最佳尝试,但它会导致上载损坏的图像:

<?php


$url = 'http://127.0.0.1:4212/index/searcher';
$header = array('Content-Type: multipart/form-data');
$fields = array('file' => '@/var/www/html/images/request.png');

$resource = curl_init();
curl_setopt($resource, CURLOPT_URL, $url);
curl_setopt($resource, CURLOPT_HTTPHEADER, $header);
curl_setopt($resource, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($resource, CURLOPT_BINARYTRANSFER, TRUE);
curl_setopt($resource, CURLOPT_POST, 1);
curl_setopt($resource, CURLOPT_POSTFIELDS, $fields);
$result = curl_exec($resource) ;
print_r($result);
curl_close($resource);

?>


有趣的是,我的系统中的文件是225873字节,而上传后它变成了226062

我认为不再使用
CURLOPT\u BINARYTRANSFER
。是的,即使删除了它,也不会有任何变化。编辑您的问题,将文件大小包含在源代码中,而不是本地机器上捕获的内容。祝你好运。请看: