Я пытаюсь загрузить несколько фотографий и обработать это с помощью встроенных функций Laravel. Но я не могу на всю жизнь понять, как это сделать правильно. Я смог загрузить кое-что, но столкнулся с несколькими проблемами. Это код, который у меня есть прямо сейчас:
Если посмотреть документацию и найти эту функцию: $file = Input::file('photo');
Я использовал эту функцию, и то, что становится содержимым $file
, является экземпляром Symfony\Component\HttpFoundation\File\UploadedFile
, который, как говорится в документации, «расширяет класс PHP SplFileInfo и предоставляет различные способов взаимодействия с файлом». http://laravel.com/docs/4.2/requests#files
Потом я использовал эту функцию Input::file('photo')->move($destinationPath);
которая должна но файл в нужной папке на сервере. Так оно и было. Но теперь возникает проблема. Теперь все загружаемые файлы имеют имя типа phpgoJnLc
и без расширения.
Я просмотрел функции, доступные из SplFileInfo
, и попробовал getExtension
, которые дают мне пустую строку, и getFilename
, которые также дают мне что-то вроде phpgoJnLc
.
Затем я порылся в Интернете и нашел несколько фрагментов кода из Laravel 3, где они сделали что-то вроде этого:
$filename = Str::random(20) .'.'. File::extension(Input::file('photo.name'));
Но в результате я получаю только результат от Str::random(20)
, за которым следует точка. Опять же, без расширения файла.
Итак, что я делаю неправильно? Как загрузить файл с Laravel 4?