我正在尝试使用Yii 1中的curl
在api中发送文件。File
我们使用表单上传,然后使用api将其发送到server
。这就是我在做的事情:
$apiFile= CUploadedFile::getInstanceByName('bases');
$apiFile = new CURLFile($apiFile->name, $apiFile->type, $apiFile->tempName);
$postData = array(
'title' => $_POST['Bases']['title'],
'file' => $apiFile
);
在卷曲中:
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
var_dump(curl_error($ch));
curl_close($ch);
现在,当代码运行时,它会抛出这个error
:
无法打开文件base.csv
我的php
版本为7.0.9
我在这里尝试了不同的解决方案,但它们似乎都没有用。我在这里错了什么?有什么帮助吗?
答案 0 :(得分:1)
尝试以下方法:
1)检查文件路径字符串是否具有文件的扩展名 2)在PHP 5 CURLFile使用绝对路径之后,检查是否使用绝对路径。
参考:https://recalll.co/ask/v/topic/php-curl%3A-%2826%29-couldn%27t-open-file/557990462bd2730c558ba7ea
答案 1 :(得分:1)
代码示例中的CURLFile参数顺序有错误。它应该是:
$apiFile = new CURLFile($apiFile->tempName, $apiFile->type, $apiFile->name);