通过 Curl PHP 表单数据将服务器存储的 PDF 文件发送到另一台服务器
P粉521748211
P粉521748211 2023-08-31 12:44:11
[PHP讨论组]

我正在尝试通过 Curl PHP Form Data 方法将存储在我的服务器上的 PHP 文件发送到另一台服务器。

通常,这是通过提交表单并上传文件并将相同的文件作为表单数据发送到 Curl PHP 端点来完成的,但在这种情况下,我的服务器上已经有了该文件,并且我陷入了如何获取的部分该文件并创建其表单数据数组并将 API Url 作为 post 方法发送。

下面是我正在尝试的某种程序。其中之一是创建一个 tmp 文件并在其中存储数据,并将该数据从 tmp 位置发送到curl 表单数据。

$source = file_get_contents("https://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;

P粉521748211
P粉521748211

全部回复(1)
P粉321676640

嗨,您可以查看下面的答案,了解我是如何成功实现这一目标的。

// $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;
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号