使用curl将二进制文件从表单转发到远程服务器

时间:2015-10-23 15:29:39

标签: 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['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);

服务器不响应此解决方法。

我错过了什么?请注意我使用的是PHP 5.5 curl_create_file

感谢您的帮助:)

0 个答案:

没有答案