У меня есть функция загрузки файла в laravel. Пользователь может выбрать несколько файлов, поэтому мне нужно разделить файл изображений и документы, чтобы я мог сжать изображения. Поэтому мне нужно получить расширения, но у меня это не работает. Я использую Laravel 7,3, и это коды, которые я пробовал:
$request->files->getClientOriginalExtension();
$request->files->extension();
Я также попытался получить временный путь, используя:
$request->files->getPathName()
Это массив, возвращаемый $request->files
:
Symfony\Component\HttpFoundation\FileBag Object
(
[parameters:protected] => Array
(
[files] => Array
(
[0] => Symfony\Component\HttpFoundation\File\UploadedFile Object
(
[test:Symfony\Component\HttpFoundation\File\UploadedFile:private] =>
[originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => Annotation 2020-02-26 084917.png
[mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/png
[error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
[pathName:SplFileInfo:private] => C:\xampp\tmp\php6AA9.tmp
[fileName:SplFileInfo:private] => php6AA9.tmp
)
)
)
)
Я также хочу получить значение из [pathName:SplFileInfo:private]
, чтобы я мог сжать изображение, но все коды, которые я указывал выше, выдают ту же ошибку:
сообщение: «вызов неопределенного метода Symfony \ Component \ HttpFoundation \ FileBag :: getClientOriginalExtension ()» *
Редактировать:
Я также пытался
foreach($request->files as $file) {
foreach ($file as $in) {
print_r($in->extension());
}
}
Но выдаст ошибку Call to undefined method Symfony\Component\HttpFoundation\File\UploadedFile::extension()