@kaxa3201

Как исправить Array to string conversion?

$arrayFiles = [];
        foreach ($files as $file) {
            $arrayFiles[] = (StorageFactory::make('minio'))->store($file->getClientOriginalName(),
                file_get_contents($file));
        }

        return $arrayFiles;

Получаю ошибку
Array to string conversion

public function run()
    {
        $matcher = new UrlMatcher($this->routes, $this->requestContext);
        try {
            $this->request->attributes->add($matcher->match($this->request->getPathInfo()));

            $this->controller = $this->getController();

            $this->arguments = $this->getArguments($this->controller);
            $response = $this->executeAction();
        } catch (ResourceNotFoundException $exception) {
            $response = new Response('Not Found', 404);
        } catch (Exception $exception) {
            $response = new Response('An error occurred', 500);
        }

        if (!empty($response) && is_object($response)) {
            $response->send();
        } else {
            echo $response;
        }
    }


указывает на эту строку
else {
echo $response;
}
  • Вопрос задан
  • 2046 просмотров
Решения вопроса 1
gzhegow
@gzhegow
aka "ОбнимиБизнесмена"
Во первых ты пытаешься file_get_contents() от объекта $file. Эта функция на вход хочет строку.
Возможно у твоего обьекта file есть какой-нибудь arrayAccess или __toString() почему-то возвращающий массив

$arrayFiles[] = (StorageFactory::make('minio'))->store($file->getClientOriginalName(), file_get_contents($file));


Может как-то так
file_get_contents($file->getClientFilePath())

функцию getClientFilePath() я с потолка взял. Она не имеет смысла кстати. Путь на клиенте тебе не доступен для чтения. Если это файл отправляемый пользователем там будет что-то $file->getTmpPath(), куда он временно закачался для твоего скрипта и откуда исчезнет если ничего не сделать. И там будет не file_get_contents() а какой-нибудь copy($file->getTmpPath(), $new_location);

Второй код ничего не говорит и даже не вызывает твой $arrayFiles никак не привязан

Что до $response, то если в нем $arrayFiles; то сделать "echo Array()" нельзя без такой ошибки. Сначала Array() нужно конвертировать в строку с помощью json_encode() или там serialize() или другим способом
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
23 апр. 2024, в 19:21
300 руб./за проект
23 апр. 2024, в 19:05
15000 руб./за проект
23 апр. 2024, в 19:01
7000 руб./за проект