web-dev-qa-db-ja.com

Laravelファイルの名前を取得

基本的には、次のように取得するファイルの名前を取得するだけです。

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

dd($inputPdf)の場合、nullと表示されます。

15
  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オブジェクトのダンプを確認するときに、ファイル名を確認できます。
38
haakym
$request->file->getClientOriginalName();

これをチェック 他のメソッドについては。

3
ExohJosh

追加するのを忘れていると思います

enctype="multipart/form-data"

あなたのフォームで。またはlaravel HTMLサービスプロバイダーの使用

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