web-dev-qa-db-fra.com

Laravel obtenir le nom du fichier

Je veux simplement obtenir le nom d'un fichier que je reçois comme ceci:

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

si je dd($inputPdf) cela m'imprime null.

15
John Does Legacy
  1. Pour obtenir le nom du fichier, comme mentionné dans les documents:

Vous pouvez accéder aux fichiers téléchargés qui sont inclus avec l'instance Illuminate\Http\Request à l'aide de la méthode de fichier. L'objet renvoyé par la méthode file est une instance de la classe Symfony\Component\HttpFoundation\File\UploadedFile, qui étend la classe PHP SplFileInfo et fournit une variété de méthodes pour interagir avec le fichier

Il existe une variété d'autres méthodes disponibles sur les instances UploadedFile. Consultez la documentation API pour la classe pour plus d'informations sur ces méthodes.

Vous pouvez donc utiliser cette méthode: getClientOriginalName()

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

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

Renverrait le nom du fichier.

Vous pouvez le faire pour vérifier si le fichier existe avant d'appeler des méthodes dessus:

if ($request->hasFile('input_pdf')) {
    return $request->file('input_pdf')->getClientOriginalName();
} else {
    return 'no file!'
}
  1. Pour résoudre le problème de dd($request->file('input_pdf')) renvoyant null vérifiez que vous utilisez le nom correct pour le fichier. Vous pouvez essayer dd($request) et vous verrez s'il y a des fichiers dedans. Vous pouvez vérifier le nom du fichier lors de l'examen du vidage de l'objet Request.
38
haakym
$request->file->getClientOriginalName();

Cochez ceci pour plus de méthodes.

3
ExohJosh

Je pense que tu oublies d'ajouter

enctype="multipart/form-data"

Dans votre formulaire. Ou si vous avez utilisé laravel HTML provider provider use

{!! Form::open(array('files' => true)) !!}
1
Parvez Rahaman