gpt4 book ai didi

PHP Curl 发布没有标题的文件

转载 作者:行者123 更新时间:2023-12-02 21:33:23 25 4
gpt4 key购买 nike

我不太懂 PHP,但试图将 cli CURL 调用移植到 PHP...最初我有:

curl -i -H "Content-Type: text/csv" -X POST --data-binary @$filepath $destination

我尝试将其变成:

<?php
$data['Filedata'] = "@".$filepath;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $destination.'/_');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/csv"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
?>

问题在于,这会导致在目标前面添加一个额外的 header ,其中包含 ---------------------------------------- ---6614b0cf8aae
内容处置:表单数据;名称=文件数据;文件名=$文件路径内容类型:应用程序/八位字节流。

我认为这是因为我使用 $data['Filedata'] 的方式,所以我尝试用下面的内容替换 CURLOPT_POSTFIELDS 行,但这只是风发布路径字符串而不是文件本身。

curl_setopt($ch, CURLOPT_POSTFIELDS, "@".$filepath);

有人介意指出我错过了什么吗?就像我说的,不是 PHP 人!

最佳答案

直接加载文件内容就可以了。目前,您正在执行键/值解析的 POST 数据,这与原始的curl 命令行不同。

curl_setopt($ch, CURLOPT_POSTFIELDS, file_get_contents($filepath));

关于PHP Curl 发布没有标题的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21887946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com