codeigniter 通过 curl PHP表单数据将服务器存储的PDF文件发送到另一个服务器

fjnneemd  于 2022-12-06  发布在  PHP
关注(0)|答案(1)|浏览(145)

我试图通过Curl PHP Form Data方法将存储在我的服务器上的PHP文件发送到另一个服务器。
通常,这是通过提交表单和上传文件,并发送相同的文件作为表单数据到Curl PHP端点,但在这种情况下,我已经在我的服务器上的文件,我卡住的一部分,我将如何获取该文件,创建其表单数据数组,并发送它的API URL作为后方法。
下面是我正在尝试的一些程序。其中一个是创建一个临时文件,并将数据存储在那里,然后将数据从临时位置发送到curl形式的数据。
(“http://url/employee_manual3.pdf”)中指定的文件类型。

$tempFile = tempnam(sys_get_temp_dir(), 'File_');   
    rename($tempFile, $tempFile .= '.pdf');

    file_put_contents($tempFile, $source);

    // var_dump($tempFile);
    // exit;
    
    // $post = array(
    //     "uploadedFile" => "@" . $tempFile, //"@".$tempFile.";type=application/pdf",
    // );

    // var_dump(file_get_contents($tempFile));
    // var_dump(new CURLFILE($tempFile));
    // exit;

    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://API_URL',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => array('file' => new CURLFILE($tempFile)),
        CURLOPT_HTTPHEADER => array(
            'Authorization: Bearer API TOKEN HAI MERA',
            'Content-Type: multipart/form-data',
            'Cookie: MAIN NAHI BATAUNGA'
        ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;
abithluo

abithluo1#

嗨你可以检查下面的答案,我是如何设法拉这关.

// $source = file_get_contents("https://URL/assets/email_images/employee_manual3.pdf");

    $file_path = __DIR__.'/../../../assets/email_images/employee_manual3.pdf';

    // var_dump(__DIR__.'/../../../assets/email_images/employee_manual3.pdf');
    // exit;

    // var_dump(new CURLFILE($file_path, 'application/pdf', 'file'));
    // exit;

    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'API URL',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => array('file' => new CURLFILE($file_path, 'application/pdf', 'file')),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;

相关问题