PHP Curl:创建formpost数据失败

时间:2015-08-15 19:56:47

标签: php curl

我看到的每个网站上都有wrong file path导致此错误,但我确信我的路径是正确的,它昨晚有效,为什么不今晚?!!

为了证明路径正确,file_exists($path)返回true

我想使用Curl发送文件,我得到failed creating formpost data。我给Curl的文件路径如下:

define('ASSET_PATH', dirname(dirname(dirname(__FILE__))) . '/asset');

$postfields = array(
    'chat_id'   => $user->user_id,
    'caption'   => $asset->caption,
    'duration'  => $asset->duration,
    'video'     => "@" . ASSET_PATH . "/video/" . $asset->name,
);

当您看到$postfields['video']的值时,输出为:

/home/hosseins/domains/my_domain/public_html/telegram/asset/video/Bottle_Bank.mp4

进一步代码

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);

$result = curl_exec($ch);
echo curl_error ( $ch ); //return failed creating formpost data
echo '<br />' . ASSET_PATH . "/video/" . $asset->name; //return named path
curl_close($ch);

我的地址或来自其他地方的问题是否有任何问题?
老兄,我被困在这里,任何帮助都将受到赞赏 提前致谢

1 个答案:

答案 0 :(得分:1)

也许我的回答迫使你因为愚蠢的问题而投票,但我必须说出这个问题,也许这对某人有所帮助。

正如我所说,我确定文件的路径,并且没有问题。

我的$postfields中有一个标题字段,它的值来自数据库,它的值为'@GamificationBot .... Some Description'。哦!这是错误......

Curl将@视为文件路径,表示首先在字符串中使用@时,该字符串被视为文件路径。所以在这里Curl认为我的标题是文件的路径,他绝对找不到。

这就是我遇到问题的原因 最好的问候贡献者。