Как получить расширение и временный путь в laravel - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть функция загрузки файла в 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()

1 Ответ

0 голосов
/ 03 апреля 2020

Поскольку $request->files равно array из files, поэтому вам нужно loop через files array, чтобы получить требуемый результат:

foreach($request->files as $file)
{
   echo $file->getClientOriginalExtension();
   echo $file->getPathName();
}

Надеюсь, это поможет.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...