Search code examples
phpfilelaravellaravel-5.1

Laravel get name of file


I basically just want to get the name of a file which I get like this:

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

if I dd($inputPdf) it prints me null.


Solution

    1. To get the file name, as mentioned in the docs:

    You may access uploaded files that are included with the Illuminate\Http\Request instance using the file method. The object returned by the file method is an instance of the Symfony\Component\HttpFoundation\File\UploadedFile class, which extends the PHP SplFileInfo class and provides a variety of methods for interacting with the file

    There are a variety of other methods available on UploadedFile instances. Check out the API documentation for the class for more information regarding these methods.

    So you can use this method: getClientOriginalName()

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

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

    Would return the file name.

    You can do this to check if the file exists before calling any methods on it:

    if ($request->hasFile('input_pdf')) {
        return $request->file('input_pdf')->getClientOriginalName();
    } else {
        return 'no file!'
    }
    
    1. To solve the issue of dd($request->file('input_pdf')) returning null check you are using the correct name for the file. You can try dd($request) and you will see if there are any files in it. You can check the file name when reviewing the dump of the Request object.