gpt4 book ai didi

PHP Curl 发布一个没有标题的文件

转载 作者:行者123 更新时间:2023-12-02 04:36:22 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
Content-Disposition:表单数据;名称=文件数据; filename=$filepath 内容类型:application/octet-stream.

我假设这是因为我使用 $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