【问题标题】:PHP Curl: failed creating formpost dataPHP Curl:创建表单数据失败
【发布时间】:2015-08-15 19:56:47
【问题描述】:

在我查看的每个站点上,他们都说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);

我的地址有什么问题或来自其他地方的问题吗?
伙计们,我被困在这里,任何帮助将不胜感激。
提前致谢

【问题讨论】:

标签: php curl


【解决方案1】:

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

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

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

Curl 将@ 视为文件路径,这意味着当您在字符串的第一个使用@ 时,该字符串被视为文件路径。所以在这里 Curl 认为我的标题是文件路径,他绝对找不到。

这就是我的问题的原因。
向贡献者致以最诚挚的问候。

【讨论】:

    【解决方案2】:

    如果您没有更改代码并停止工作,那么可能是文件的权限发生了变化。确保文件具有必要的权限。

    你也可以看here

    【讨论】:

    • 感谢您的回答,我检查了权限,它们设置在755,所以这里没问题,我也检查了之前的链接,根据我的路径是正确的,我们也看到了我的问题中的路径。
    • 您是否尝试过使用其他文件?也许这个文件有问题,也许这个文件太大了。这就是我能想到的,我从来没有以这种方式上传,我只是手动写入 multipart/form-data 的文件上传。
    • 是的,我尝试了多个文件但没有区别,关键是它昨晚运行成功。密码魔法!!无论如何感谢您的宝贵时间
    猜你喜欢
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    相关资源
    最近更新 更多