Используя Laravel 5, я пытался загрузить загруженный файл и переместить его, используя фасад файловой системы, чтобы получить прибыль от мощности flysystem, используемой Laravel.
Проблема в том, что даже если я пытаюсь получить путь, tmp_name, diskname или свойство wathever, которое будет представлять $ _FILES [файл] [tmp_name], я не могу получить доступ к нему!
Я не хочу использовать $ _FILES, поскольку это противоречит лучшим практикам, и если что-то изменится, это не будет работать больше, поэтому я действительно хочу использовать:
$request->file('import')
для доступа к моему импортированному файлу.
В классе UploadedFile существует метод перемещения, но мне нужно установить локальный путь, который не обязательно в этом случае. Тогда есть переход meethod в контракт FileSystem, но он запрашивает локальный путь, который я не знаю о причине, я не могу найти локальное имя tmp_ UploadedFile …
Как бы я это сделал, я действительно потерялся здесь.
Почему я всегда нахожу свой ответ после публикации вопроса …
Ответ на этот вопрос прост, используйте функции SplFileInfo:
Объект, возвращаемый методом файла, является экземпляром класса Symfony \ Component \ HttpFoundation \ File \ UploadedFile, который расширяет класс PHP SplFileInfo и предоставляет множество методов для взаимодействия с файлом.
Таким образом, вы можете сделать
$request->file('import')->getPathName()
И он вернет ваш местный путь!