在主机中使用cron作业时,必须更改curl文件路径?

时间:2017-09-07 08:52:11

标签: php curl cron

嗨我有一个PHP代码用bot api发送电报信息。 现在我有一个问题,使用curl来实现文件路径。 问题是:当我重新加载页面以通过api发送照片消息时它可以工作,但是当我在我的主机中创建新的cron作业时它不会发送照片。 我认为问题来自文件的curlpath

<?php



$boturl='https://api.telegram.org/bot' . $botToken .'/';


$cfile = new CURLFile(realpath("upload2/$file")); //first parameter is YOUR IMAGE path
    $data = [
        'chat_id' => $chat_id , 
        'document' => $cfile,
		'caption' => $matn,
        ];

    $ch = curl_init($boturl.'sendDocument');
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    $result = curl_exec($ch);
    curl_close($ch);


?>

使用cron作业时的问题在哪里? TNX

1 个答案:

答案 0 :(得分:1)

使用完整路径而不是相对路径。

例如:

$cfile = new CURLFile(realpath(__DIR__ . "/upload2/$file"));

因为相对路径取决于执行脚本的位置。