retailcrm / api-client-php

PHP client for RetailCRM API
http://www.retailcrm.ru
MIT License
60 stars 58 forks source link

Как работает загрузка файла к вам на сервер? #75

Closed Revialas closed 3 years ago

Revialas commented 4 years ago

Здравствуйте. Если открыть справку (http://help.retailcrm.ru/Developers/ApiVersion5#post--api-v5-files-upload) то там написано Для загрузки файла необходимо поместить его содержимое в тело запроса. Содержимое файла на php получается методом file_get_contents. Но при просмотре функции апи-клиенте видим проверку входящей переменной как адреса файла: !file_exists($file) и filesize($file) == 0

public function fileUpload($file)
    {
        if (!file_exists($file)) {
            throw new \InvalidArgumentException("File doesn't exist");
        }

        if (filesize($file) == 0) {
            throw new \InvalidArgumentException("Empty file provided");
        }
        /* @noinspection PhpUndefinedMethodInspection */
        return $this->client->makeRequest(
            '/files/upload',
            "POST",
            ["file" => $file]
        );
    }

Так как всё таки будет правильно? Первый раз я передавал именно путь к файлу и файлы открывались с црм. Но с недавнего времени там стали просто показывать этот путь к файлу. Пришел тогда к выводу что надо использовать file_get_contents, но тогда пришлось отключить эти две проверки. Но сам метод сработал и файлы загрузились.

gwinn commented 3 years ago

Исправлено в #81, конкретно тут