Laravel是一種流行的PHP框架,它提供了方便的檔案上傳功能,允許使用者上傳多個檔案。這篇文章將介紹Laravel多檔案上傳的過程。
1.設定路由
在Laravel中,檔案上傳通常透過POST請求提交表單。上傳的檔案將會被傳送到伺服器的指定路徑,例如/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
目錄下。
總結
透過上述步驟,我們已經成功地設定了Laravel的多檔案上傳功能。要上傳多個文件,我們需要使用數組類型的表單元素,並在控制器中使用循環來處理每個上傳的文件。我們也學習如何設定Laravel路由和表單以處理檔案上傳。
以上是laravel多文件上傳過程的詳細內容。更多資訊請關注PHP中文網其他相關文章!