Laravel получить имя файла

Я в основном просто хочу получить имя файла, который я получаю следующим образом:

$inputPdf = $request->file('input_pdf');

Если я dd($inputPdf) он печатает мне null.

3 ответов


  1. чтобы получить имя файла, как указано в документации:

С помощью метода file можно получить доступ к загруженным файлам, включенным в экземпляр Illuminate\Http\Request. Объект, возвращаемый методом file, является экземпляром класса Symfony\Component\HttpFoundation\File\UploadedFile, который расширяет класс PHP SplFileInfo и предоставляет различные методы для взаимодействия с файлом

существует множество других методы, доступные в экземплярах UploadedFile. Проверьте документация API для класса для получения дополнительной информации об этих методах.

так что вы можете использовать этот метод: getClientOriginalName()

http://api.symfony.com/3.0/Symfony/Component/HttpFoundation/File/UploadedFile.html#method_getClientOriginalName

$request->file('input_pdf')->getClientOriginalName();

возвращает имя файла.

вы можете сделать это, чтобы проверить, существует ли файл до вызов любых методов на нем:

if ($request->hasFile('input_pdf')) {
    return $request->file('input_pdf')->getClientOriginalName();
} else {
    return 'no file!'
}
  1. для решения вопроса 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)) !!}