Php 使用curl将二进制文件从窗体转发到远程服务器

Php 使用curl将二进制文件从窗体转发到远程服务器,php,curl,php-5.5,Php,Curl,Php 5.5,以下脚本有效: move_uploaded_file($_FILES['file']['tmp_name'], $filename); echo exec('curl -X POST --data-binary @' . $filename . ' http://remote.api:8888/index/add'); 以下内容不适用:- 我们将很快禁用exec(),并将进行大量强化,因此上述解决方案将无法工作 我尝试了以下方法: move_uploaded_file($_FILES['f

以下脚本有效:

move_uploaded_file($_FILES['file']['tmp_name'], $filename);


echo exec('curl -X POST --data-binary @' . $filename . ' http://remote.api:8888/index/add');
以下内容不适用:-

我们将很快禁用exec(),并将进行大量强化,因此上述解决方案将无法工作

我尝试了以下方法:

move_uploaded_file($_FILES['file']['tmp_name'], $filename);
$filetype = $_FILES['file']['type'];
$ch = curl_init('http://remote.api/index/add');
curl_setopt($ch, CURLOPT_PORT, 8888);
curl_setopt($ch, CURLOPT_POST, TRUE);
$cFile = curl_file_create($filename, $filetype, $_FILES['file']['name']); // php5.5+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, ['file' => $cFile]);
$x = curl_exec($ch);
curl_close($ch);
服务器不响应此解决方案

我错过了什么?请注意,我正在使用PHP5.5创建文件


谢谢您的帮助:)

curl\u exec()返回什么?如果输出curl_getinfo($ch)的结果,您会得到什么?大小上传-大小下载-如。。没什么问题…不知道你要我做什么?exec返回1,但由于我有returntransfer,它给了我一个错误,api应该在没有收到文件时抛出这个错误。。。