Laravel: тестовый пост с реальным файлом

Я использую laravel 5.6. Я пытаюсь протестировать форму post, для которой нужен file. Я написал это

$file = new \Illuminate\Http\UploadedFile(base_path() . '/tests/samples/Cylinder.stl', 'Cylinder.stl');

$response = $this->post( route('attachments.store' ) , [
    'file' => $file,
    'attachable_id' => $this->threedviews->id,
    'attachable_type' => 'App\ThreeDView',
]);

Но когда я dd( $this->app['session.store'] ), я получаю

#bags: array:1 [
        "default" => Illuminate\Support\MessageBag {#1198
          #messages: array:1 [
            "file" => array:1 [
              0 => "The file failed to upload."
            ]
          ]
          #format: ":message"
        }
      ]

Когда я использую форму вручную, все работает хорошо. Также $file кажется странным

Illuminate\Http\UploadedFile {#43
  -test: false
  -originalName: "Cylinder.stl"
  -mimeType: "application/octet-stream"
  -error: 0
  ...
}

Флаг test установлен в значение false, это должно быть так?

Что говорит ваш файл laravel.log? Файл журнала должен содержать конкретное исключение, например права доступа к файлу или недопустимый путь.

Niraj Shah 16.08.2018 17:14

@NirajShah laravel.log пуст, потому что приложение не дает сбоев, просто POST возвращает неожиданное сообщение об ошибке, но laravel не дает сбоев. А может log по умолчанию где-то еще для тестов?

Atnaize 16.08.2018 17:42

Должно быть более конкретное сообщение об ошибке, генерируемое где-то помимо The file failed to upload. - похоже, это сообщение, возвращаемое Validator.

Niraj Shah 16.08.2018 18:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
3
65
0

Другие вопросы по теме