[我正在尝试编写一个php文件来使用docker容器内部的微服务,该容器将html转换为pdf。
我可以这样毫无问题地做到这一点:
curl -vv -F --output 'file=@/home/user/Documents/contract.html' http://0.0.0.0:32768/ -o /home/user/contract.pdf
现在我正尝试在php文件中“翻译”此命令,但这是我第一次在php中使用curl。
//Initialise the cURL var
$ch = curl_init();
//Get the response from cURL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//Set the Url
curl_setopt($ch, CURLOPT_URL, 'http://0.0.0.0:32768/');
//Create a POST array with the file in it
$postData = array(
'testData' => '@/home/user/Documents/contract.html',
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
// Execute the request
$response = curl_exec($ch);
var_dump($response);
[我缺少命令的-o
选项,将html文件转换为pdf后应该获取的文件的路径和名称。
我认为您正在寻找CURLOPT_FILE
。
CURLOPT_FILE应该将传输写入的文件。默认值为STDOUT(浏览器窗口)。
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "curl%20-vv%20-F%20--output%20'file=@/home/user/Documents/contract.html'%20http://0.0.0.0:32768/%20-o%20/home/user/contract.pdf%0A%0A",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;