curl:无法打开文件base.csv

时间:2018-03-07 07:42:53

标签: php file curl file-upload

我正在尝试使用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 我在这里尝试了不同的解决方案,但它们似乎都没有用。我在这里错了什么?有什么帮助吗?

2 个答案:

答案 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);