Как загрузить загруженный файл tmp_name в Laravel 5.0

Используя Laravel 5, я пытался загрузить загруженный файл и переместить его, используя фасад файловой системы, чтобы получить прибыль от мощности flysystem, используемой Laravel.

Проблема заключается в том, что даже если я пытаюсь получить путь, tmp_name, diskname или свойство wathever, которое будет представлять $_FILES [файл] [tmp_name], я не могу получить доступ к нему!

Я не хочу использовать $_FILES, поскольку это противоречит лучшим практикам, и если что-то изменится, это не будет работать больше, поэтому я действительно хочу использовать:

$request->file('import')

чтобы получить доступ к моему импортированному файлу.

В классе UploadedFile существует метод перемещения, но мне нужно установить локальный путь, который не обязательно в этом случае. Затем в контракте FileSystem есть способ перемещения, но он запрашивает локальный путь, который я не знаю о причине. Я не могу найти локальное имя tmp_ UploadedFile...

Как бы я это сделал, я действительно потерялся здесь.

1 ответ

Почему я всегда нахожу свой ответ после публикации вопроса...

Ответ на этот вопрос прост, используйте функции SplFileInfo:

Объект, возвращаемый методом файла, является экземпляром Symfony\Component\HttpFoundation\File\UploadedFile, который расширяет класс PHP SplFileInfo и предоставляет множество методов для взаимодействия с файлом.

Итак, вы можете сделать

$request->file('import')->getPathName()

И он вернет ваш локальный путь!

licensed under cc by-sa 3.0 with attribution.