Laravel は、ユーザーが複数のファイルをアップロードできる便利なファイル アップロード機能を提供する人気の PHP フレームワークです。この記事では、Laravel で複数ファイルをアップロードするプロセスを紹介します。
1. ルーティングを設定する
Laravel では、通常、ファイルのアップロードは POST リクエストを介して送信されます。アップロードされたファイルは、サーバー上の指定されたパス (/upload
など) に送信されます。 Laravel がアップロードされたファイルを処理できるようにするには、次のように routes/web.php
ファイルでルートを定義する必要があります: /upload
。为了让Laravel处理上传的文件,我们需要在routes/web.php
文件中定义一个路由,如下所示:
<code>Route::post('/upload', 'FileController@upload');</code>
此路由将POST请求发送到/upload
路径,并将其传递给名为FileController
的控制器中的upload
方法。
2.创建控制器
创建一个名为FileController
的控制器,并在其中编写upload
方法。该方法将处理上传的文件:
<code>public function upload(Request $request) { $files = $request->file('file'); foreach ($files as $file) { $fileName = time() . '-' . $file->getClientOriginalName(); $file->move(public_path('uploads'), $fileName); } }</code>
在这个方法中,我们首先获取上传的文件并遍历它们。对于每个文件,我们使用getClientOriginalName
方法获取其原始文件名,将其与当前时间戳组合成新的文件名,然后使用move
方法将其保存在服务器的公共uploads
目录下。
注意,Laravel会自动验证文件是否符合要求(大小、类型等)。如果上传的文件不符合要求,Laravel会抛出ValidationException
异常。
3.配置表单
现在我们需要在视图中创建表单以允许用户上传文件。在这个例子中,我们将在resources/views/upload.blade.php
文件中创建表单:
<code><form method="POST" action="/upload" enctype="multipart/form-data"> @csrf <input type="file" name="file[]" multiple> <button type="submit">上传文件</button> </form></code>
首先,我们定义了一个POST方法,将表单数据发送到/upload
地址。由于我们需要上传多个文件,因此我们使用multiple
属性设置<input>
元素为多选。此外,我们还需要在表单中添加enctype="multipart/form-data"
属性,以确保文件被正确编码并通过POST请求进行传输。
4.测试上传功能
现在我们已经完成了上传功能的配置和实现,我们可以测试一下是否可以成功上传文件。我们可以访问/upload
路径,并上传多个文件。上传完成后,我们可以查看我们的文件是否已经保存在服务器的uploads
rrreee
/upload に送信します。 code> code> パスを作成し、それを <code>FileController
という名前のコントローラーの upload
メソッドに渡します。 2. コントローラーを作成します FileController
という名前のコントローラーを作成し、その中に upload
メソッドを記述します。このメソッドはアップロードされたファイルを処理します: 🎜rrreee🎜 このメソッドでは、まずアップロードされたファイルを取得し、それらを反復処理します。ファイルごとに、getClientOriginalName
メソッドを使用して元のファイル名を取得し、それを現在のタイムスタンプと組み合わせて新しいファイル名にし、move
メソッドを使用して保存します。サーバーのパブリック uploads
ディレクトリにあります。 🎜🎜Laravel はファイルが要件 (サイズ、タイプなど) を満たしているかどうかを自動的に検証することに注意してください。アップロードされたファイルが要件を満たしていない場合、Laravel は ValidationException
例外をスローします。 🎜🎜3. フォームを設定する🎜🎜 次に、ユーザーがファイルをアップロードできるようにするフォームをビューに作成する必要があります。この例では、resources/views/upload.blade.php
ファイルにフォームを作成します: 🎜rrreee🎜 まず、フォーム データを /upload に送信する POST メソッドを定義します。
アドレス。複数のファイルをアップロードする必要があるため、multiple
属性を使用して <input>
要素を複数選択に設定します。さらに、ファイルが正しくエンコードされ、POST リクエストを通じて転送されることを保証するために、フォームに enctype="multipart/form-data"
属性を追加する必要があります。 🎜🎜4. アップロード機能をテストします🎜🎜アップロード機能の構成と実装が完了したので、ファイルを正常にアップロードできるかどうかをテストできます。 /upload
パスにアクセスして、複数のファイルをアップロードできます。アップロードが完了したら、ファイルがサーバーの uploads
ディレクトリに保存されているかどうかを確認できます。 🎜🎜まとめ🎜🎜 以上の手順で、Laravelのマルチファイルアップロード機能の設定が完了しました。複数のファイルをアップロードするには、配列型のフォーム要素を使用し、コントローラー内のループを使用してアップロードされた各ファイルを処理する必要があります。また、ファイルのアップロードを処理するために Laravel のルートとフォームを構成する方法も学びました。 🎜以上がlaravelの複数ファイルのアップロードプロセスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。