Laravel получить имя файла
Я в основном просто хочу получить имя файла, который я получаю следующим образом:
$inputPdf = $request->file('input_pdf');
Если я dd($inputPdf)
он печатает мне null
.
3 ответов
- чтобы получить имя файла, как указано в документации:
С помощью метода file можно получить доступ к загруженным файлам, включенным в экземпляр Illuminate\Http\Request. Объект, возвращаемый методом file, является экземпляром класса Symfony\Component\HttpFoundation\File\UploadedFile, который расширяет класс PHP SplFileInfo и предоставляет различные методы для взаимодействия с файлом
существует множество других методы, доступные в экземплярах UploadedFile. Проверьте документация API для класса для получения дополнительной информации об этих методах.
так что вы можете использовать этот метод: getClientOriginalName()
$request->file('input_pdf')->getClientOriginalName();
возвращает имя файла.
вы можете сделать это, чтобы проверить, существует ли файл до вызов любых методов на нем:
if ($request->hasFile('input_pdf')) {
return $request->file('input_pdf')->getClientOriginalName();
} else {
return 'no file!'
}
- для решения вопроса
dd($request->file('input_pdf'))
возвращениеnull
убедитесь, что вы используете правильное имя файла. Вы можете попробоватьdd($request)
и вы увидите, есть ли в нем какие-либо файлы. Вы можете проверить имя файла при просмотре дампа
$request->file->getClientOriginalName();
проверить это дополнительные методы.
Я думаю, вы забыли добавить
enctype="multipart/form-data"
в вашей форме. Или если вы использовали laravel HTML service provider use
{!! Form::open(array('files' => true)) !!}